mv
これは、1つのことをうまく実行できるように設計された基本的なコマンドラインです(UNIXの哲学)。ファイルを移動するか、ディレクトリを移動します。
あなたはハックSTDOUT
&STDIN
¹で目的の文字列をその場で変更できますが、それは単にスマートなハックではありません
名前の変更(Perlのもの)
同じ名前のツールが他にもあり、これを実行できる場合とできない場合があるので注意してください。
人々がについて話すときrename
、私たちはこれについて考えますがELF
、それほど強力ではありません(魔法?)。
これは基本的なものではなく、Perlです。内部でいくつかのPerlの関数を渡すことができ、それは非常に強力です。
この例を考えてみましょう:
次のようなファイルの名前を変更したい
foobar_1.txt
foobar_2.txt
foobar_3.txt
次のsprintf()
ように数字の前にゼロを付けることができます(正規表現を使用して、へっ、Perl:Dです):
rename 's/(\d+)/sprintf("%04d", $1)/e' foobar_*.txt
今、あなたは持っています:
foobar_0001.txt
foobar_0002.txt
foobar_0003.txt
本当に基本的なコマンドではありませんよね。
renameは実際にはdir(s)を移動するようには設計されていませんが、それは可能です:
$ mkdir -p /tmp/foo/bar/base
$ touch /tmp/foo/bar/base/file
$ rename 's!/tmp/foo/bar/base/file!/tmp/file!' /tmp/foo/bar/base/file
移動したファイル
/tmp/file
website *.stackexchange.*
ウェブサイトに表示されるコード
for FILE in `ls *.txt`
do
mv ${FILE} `echo ${FILE} | sed 's/anything_ugly/anything_still_ugly/'`
done
それは行く方法ではありません、それは明白なバギーです、ちょうど適切なタイミングで適切なツールを使用する理由を説明するだけです
type -a rename
とはrename --version
?