デフォルトでは、私のハードドライブにはデフォルトディレクトリ内に200以上のサブディレクトリがあり、混乱しています。.txt
200以上のサブディレクトリにある拡張子などを含むすべてのファイルを新しいディレクトリに移動したいと思います。たとえば、n00b.txt
またはn00b.txt.exe
そのため、200を超えるサブディレクトリを含むホームディレクトリで次のコマンドを試しました。sudo mv **/*.txt ~/Desktop/tmpremo/
代わりに、次のエラーが発生します。bash: /usr/bin/sudo: Argument list too long
このメッセージが表示されるのはなぜですか、sayを削除するにはどうすればよいですか.txt,.txt.exe
?どうすれば解決できますか?
ベストアンサー1
これにより、現在のディレクトリ(サブディレクトリを含む)内のどこにも存在する拡張子を持つすべてのファイルが.txt
。.txt.exe
~/Desktop/tmpremo
$ sudo find . -type f \( -iname '*.txt' -o -iname '*.txt.exe' \) -exec mv {} ~/Desktop/tmpremo \;
他の拡張も必要に応じて-o -iname '*.extension'
追加できます-exec
。
sudo
PS:@xenoidが指摘したように、現在の作業で絶対に必要な場合以外は使用しないでください。