インストール

インストール

まず、ファイル名のバッチから最初のスペースを削除するコードを書いてみましょう。

端末に入力するとき:

#!/bin/bash

for f in *.jpg; do echo mv "$f" “${f/ /}”; done

私は得る:

mv R 1  Pe.jpg “R1 Pe.jpg”
mv R 10 Ma.jpg “R10 Ma.jpg”
mv R 11 An.jpg “R11 An.jpg”

ただし、エコーを削除すると、実際の名前変更は発生せず、次のエラーが発生します。

for f in *.jpg; do mv "$f" “${f/ /}”; done
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory

どんな提案がありますか?

ベストアンサー1

これは引用符ではありません。あなたは..しなかった"

$ uniprops “
U+201C ‹“› \N{LEFT DOUBLE QUOTATION MARK}
    \pP \p{Pi}
    All Any Assigned Punct Is_Punctuation Common Zyyy Pi P General_Punctuation
       InPunctuation Gr_Base Grapheme_Base Graph X_POSIX_Graph GrBase
       Initial_Punctuation Pat_Syn Pattern_Syntax PatSyn Print X_POSIX_Print
       Punctuation QMark Quotation_Mark Unicode X_POSIX_Punct


$ uniprops '"'
U+0022 ‹"› \N{QUOTATION MARK}
    \pP \p{Po}
    All Any ASCII Assigned Basic_Latin Punct Is_Punctuation Common Zyyy Po P
       Gr_Base Grapheme_Base Graph X_POSIX_Graph GrBase Other_Punctuation
       Pat_Syn Pattern_Syntax PatSyn POSIX_Graph POSIX_Print POSIX_Punct Print
       X_POSIX_Print Punctuation QMark Quotation_Mark Unicode X_POSIX_Punct

ターゲット名の引用符は適切な二重引用符ではないため、2番目の引数は空白に分割され、最初のコマンドは2つのファイルを存在しないディレクトリに移動しよmvうとします。これがエラーの原因です。R 1 Pe.jpg“R1Pe.jpg”

だからこれを試してみてください:

for f in *.jpg; do echo mv "$f" "${f/ /}"; done

おすすめ記事