プレフィックスが「Unix_」のフォルダ内のすべてのファイル名を変更します。

プレフィックスが「Unix_」のフォルダ内のすべてのファイル名を変更します。

プレフィックス "Unix_" を含むフォルダのすべてのファイル名を変更します。つまり、フォルダにa.txtとb.pdfという2つのファイルがあると仮定すると、単一のコマンドですべてUnix_a.txtとUnix_b.pdfに名前を変更する必要があります。

答え1

$ for f in * ; do mv "$f" Unix_"$f" ; done

答え2

これ名前を変更するこのコマンドは、正規表現を使用してファイルの名前を変更できるため、非常に強力です。あなたの場合はこれを行うことができます

rename 's/(.*)/Unix_$1/' *.txt

答え3

使用する場合ジッシュシェルとしてこの機能を使用することもできますzmv

次の行を次の項目に追加します.zshrc

autoload -U zmv

その後、次を実行できます。

% zmv -W '*' 'Unix_*'

バラよりman zshcontribより多くの情報を知りたいです。

答え4

しかし、xargsは非常に強力なツール(そして多くのシステムで)なので、言及する価値があると思うなら、他の答えがより良いかもしれません。

この時点で、次のことができます。

ls | xargs -n1 -I{} mv {} Unix_{}

編集する:引き出し間隔ザイルズ'コメント。この場合、このソリューションは、引用された記事で指摘された注意事項のためにハッキングと見なされるべきです。他の答えははるかに良いです。私はまだこれがxargsまだ役に立つツールだと思いますが(比較的頻繁に使用されますsvn status)、彼の言葉は正しいです。単にディレクトリツリー内のすべてのファイルに対していくつかのコマンドを実行することにはこれが答えではなく、 find が良いでしょう。 (同じミスを犯している人にはコメントが役に立つと思います。)

関連情報