私が理解する限り、私は使用できます
find . -name '*.txt' -exec cat {} \; > all.txt
ディレクトリ内のすべてのテキストファイル(サブディレクトリを繰り返し探索)をというファイルにリンクします。問題は、元のファイルを保存するのに十分なall.txt
空き容量がないことです。all.txt
ソースファイルをリンクして削除できるように、2つのコマンドを順番に実行する方法はありますかall.txt
?
答え1
最も一般的なアプローチは、次のアドレスに送信される単純な1行シェルコマンドを作成することですfind
。
find . -name "*.txt" -exec sh -c 'cat {} >> foobar && rm {}'
注:globは*.txt
出力ファイルと一致しません。all.txt
追加したファイル(私の場合)がglobと一致しない場合は、foobar
極端なケースを回避できます。後で-name
名前を変更してくださいfoobar
。