ディレクトリにはX.txt
、、ファイルがありますY.txt
。Z.txt
このファイル名を次のファイルに移動したいと思います。
Out_file.txt
X.txt
Y.txt
Z.txt
これを達成するためのUnixコマンドはありますか?
答え1
ls >> Out_file.txt
もちろん、そのフォルダにいるとき...
答え2
これは非常に簡単なステップです。 「ls」の出力をファイルにリダイレクトするだけです。
ls -1 >> file.txt
答え3
この問題を解決する別のオプションは次のとおりです。
ls | tee Out_File.txt
答え4
find
私はOPの問題と多くの同様の目標のための良い選択だと思います。
再帰および関連ファイルの仕様は次のとおりです。「無料」したがって、このコマンドはユーザーの現在のディレクトリまたはその下にあるすべてのファイルのリストを収集し、
find
そのリストを次にリダイレクトします。.txt
Out_file.txt
find -name \*.txt > Out_file.txt
出力は1行に1つのファイル形式です
./filename.txt
。出力にデフォルトのファイル名(ディレクトリ指定なし)のみが必要な場合
find
(最大バージョン)には以下のオプションが組み込まれていますprintf
。find -name \*.txt -printf "%f\n" > Out_file.txt
出力は1行に1つのファイル形式です
filename.txt
。完全な再帰が必要ない場合(または「制限された再帰」必須) 次の
maxdepth
オプションを使用できます。find -maxdepth 1 -name \*.txt -printf "%f\n" > Out_file.txt
この出力はここの他の多くの答えと同じ形式ですが、必ずしもアルファベット順である必要はありません。アルファベット順が必要な場合は、
find
出力をパイプできますsort
。find -maxdepth 1 -name \*.txt -printf "%f\n" | sort > Out_file.txt
X.txt Y.txt Z.txt
私が最も役に立つと思うバージョンは次のとおりです。
find $(pwd) -name \*.mp3 > FullPlaylist.txt
次のものと組み合わせることができる音楽ファイル(mp3エンコードなど)の完全なプレイリストを作成できます。
mpg321