GNU bash、バージョン 5.0.17(1)-リリース(x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
そのため、約20個の7zファイルをダウンロードし、そのファイルをどこかに移動したいのですが、すでにダウンロードしている古い7zファイルは移動したくありません。 (しかし、ファイル名にもスペースがあります。)だから私は本当に好きです。
mv `find -mmin -700 -iname "*.7z" -printf "\"%f\" "` ~/FOLDER/
過去11時間に変更されたすべての7zファイルを見つけて〜/ FOLDER /に移動する必要があります。
すべてのファイルを移動するのではなく、次のファイル名の断片が原因で多くのエラーが発生しました。
mv: cannot stat 'Pinball': No such file or directory
私はfind
コマンド自体を試してみましたが、それぞれを引用符で囲み、1行に合理的に見えるファイルのリストを提供します。また、バックティックが基本的にDIDだと思ったように、コマンドの出力をfind
に貼り付けようとしましたが、mv PASTED_HERE ~/FOLDER/
正常に動作しました。 (私も$()
バックティックを置き換えようとしましたが、バックティックと同じエラーが発生しました。)何が問題ですか?
ベストアンサー1
引用符はファイル名の一部ではないため、名前に引用符を含めても機能することは期待できません。
find -mmin -700 -iname '*.7z' -exec echo mv -v {} ~/FOLDER/ \;
または(GNUを使用mv
)、
find -mmin -700 -iname '*.7z' -exec echo mv -vt ~/FOLDER/ {} +
どちらの場合も、echo
提案された結果に満足したら削除してください。
参考までに、バックティックはもはやベストプラクティスとは見なされません。結果を単一の単語として扱う必要がある場合は、代わりに二重引用符を使用できます` ... `
。$( ... )