仮説 - ファイル名に「heavengames」という単語を含む複数の個々のディレクトリにあるすべてのHTMLファイル(2番目の質問で、本文に「heavengames」という単語を含むすべてのHTMLファイル)を名前に移動するにはどうすればよいですか?新しいディレクトリを作成したい場合はどうすればよいですか? 「パラダイスゲームスレッド」?
答え1
名前にこの単語を含むファイルを移動するには:
find /path/to/dir1 /path/to/dir2 /and/so/on -type f -iname "*heavengames*" \
-exec mv -t /path/to/heavengames-threads {} \+
テキストに単語を含むファイルを移動するには:
find /path/to/dir1 /path/to/dir2 /and/so/on -type f -exec grep -q heavengames {} \; \
-exec mv -t /path/to/heavengames-threads {} \+
PS:すべてが正しいことを確認するには、最初の実行時にecho
beforeを追加してください。mv
答え2
ファイル名に基づいてzshまたはbash ≥4から:
mkdir heavengames-threads
mv **/*heavengames*.html heavengames-threads/
柔軟性を高めるには(たとえば、ディレクトリ階層を再作成するにはzmv
(持っているこのウェブサイトには多くの例があります。)。
grep
ファイルの内容を取得するために使用されます。最新バージョンのGNUユーティリティを使用する(つまり、組み込まれていないLinuxまたはCygwinで):
grep -RZ heavengames . | xargs -0 mv -t heavengames-threads/
より移植性の高いコマンドを使用するには、find
.seeを使用してください。ラッシュの答え。