現在のディレクトリから別のディレクトリにファイルを移動しようとしています。私が経験している問題は、名前に特殊文字を含む複数のファイルがあることですspace, ü, &, (, ...
。配置されます。コマンドを試しましたが、エラーが表示されます。助けてもらえますか?ls | grep mp4 | xargs -i mv {} mp4
{}
ベストアンサー1
これがまさに本当です使いたくないls
または、xargs
入力をスペースに分割し、引用符とバックスラッシュのみを処理するデフォルト設定を使用します。この動作をオフにするには、-0
ヌルバイト区切り入力または改行区切り(GNU xargs)入力を使用する必要があります。-d'\n'
すべてのファイルが同じディレクトリにあるため、シェルを使用できます。
mv *mp4* mp4/
mv *.mp4 mp4/
または、拡張子があるファイルのみを意味する場合。mp4
最初は、mp4
に移動するように警告しますmp4
。 )
ファイルが同じディレクトリにない場合は、二重アスタリスク(デフォルトではzsh
有効またはksh
一緒に有効)を使用する必要があります。set -o globstar
bash
shopt -s globstar
mv **/*mp4* mp4/
またはfind
find . -type f -name "*mp*" -exec mv {} mp4/ \;