名前に複数の特殊文字(「é」、「ä」、「space」など)を含むファイルを移動するには?

名前に複数の特殊文字(「é」、「ä」、「space」など)を含むファイルを移動するには?

現在のディレクトリから別のディレクトリにファイルを移動しようとしています。私が経験している問題は、名前に特殊文字を含む複数のファイルがあることです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 globstarbashshopt -s globstar

mv **/*mp4* mp4/

またはfind

find . -type f -name "*mp*" -exec mv {} mp4/ \;

おすすめ記事