ファイル名をファイルに書き込む

ファイル名をファイルに書き込む

ディレクトリにはX.txt、、ファイルがありますY.txtZ.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そのリストを次にリダイレクトします。.txtOut_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

関連情報