プレフィックス "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 が良いでしょう。 (同じミスを犯している人にはコメントが役に立つと思います。)