私は以前も同様の質問をしましたが、サブディレクトリに固有の質問でした。サブディレクトリのファイルをcsvファイルに書き込み、Linuxコマンドラインの親ディレクトリに保存します。。 5つのサブディレクトリ(sub1、sub2、..sub5)がある "dir"というディレクトリがあります。各サブディレクトリには多くのファイルがあります。すべてのサブディレクトリのファイルのリストをCSVファイルに作成し、Linuxのコマンドラインを使用して "dir"ディレクトリに保存したいと思います。私のコードはファイル名(name1、name2など)のみが必要ですが、ファイル名全体をパス(./sub1/name1、./sub1/name2など)として書き込むことを除いて、すぐにこれを行います。 dirフォルダで使用するコマンドラインは次のとおりです。
dir$ find . -type f > names.csv
答え1
質問に「Linux」というタグを付けたので、GNUがあるとしますfind
。
find . -type f -printf '%f\n' > names.csv
からman find
:
%f File's name with any leading directories removed (only the last element).
答え2
dir$ find . -type f -execdir basename {} \; > names.csv
説明する
-execdir
各結果に対して次のコマンドを実行します。basename {} \;
final 前の部分を削除します/
。{}
見つかった各ディレクトリを置き換えます。詳細についてはを参照してくださいman find
。