私はMS-DOSのバックグラウンドから来るのは不幸ですが、少なくともLinuxがどれほど強力であるかを理解することができます。私はLinux-Fuを標準に近づけるよう取り組んでいますが、DOSでできることがいくつかありますが、Linuxで最も簡単に達成する方法がわかりません。
複数のファイルの名前を変更する-2つのワイルドカードを使用する
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\>rename *.txt *.bak
c:\> dir
Directory of c:\
file1.bak
file2.bak
file3.bak
file4.bak
私はfind -exec
ここで使用できることを知っていますが、おそらくmv
いくつかの特別なフラグまたは構文を使用して、より短い構文を使用することは可能ですか?私は、このための鍵があると思い秒 *
(つまり、私はワイルドカードを使用して名前を変更したいファイルを選択する方法を知っている)Linuxなどのワイルドカードは最初のものに問題を持つべきではありません
1つのファイルの名前を変更する-1つのワイルドカードを使用する
c:\> dir
Directory of c:\
file1.txt
c:\>rename file1.txt *.bak
c:\> dir
Directory of c:\
file1.bak
これは、長くて扱いにくいファイル名を変更するときに特に役立ちます。私は多分、私が使用して考えていたmv file1.txt $1.bak
で終わるためにfile1.txt.bak
も許容されるであろうが、私はあなたが参照することができないんだけど$1
、シェルコマンドでパラメータをインライン。ここでも、この特定のケースでは、ms-dosが*
ワイルドカードをどのようにファイル名の一部のキャプチャ/置換一致の一種として使用するかを単純化するのが便利です。
ワイルドカードを使用したディレクトリリストのフィルタリング
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
text.txt
\temp (directory)
c:\> dir file*
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\> t*
Directory of c:\
text.txt
\temp (directory)
それを行うための正しい構文が何であるかls
、またはそれが可能かどうかさえわかりません。私がそのようなls t*
ことをした場合、で始まるディレクトリに再帰しt
ます。私の回避策は、使用しているか、find . --max-depth 1 -iname "t*"
またはそのようなものですls -al | grep t
-どちらも、それほど短くて単純でdir t*
はありません。
最後に、これらの長いコマンドを短くするためにエイリアスを設定できることはわかっていますが、リモートシステムに接続している場合や作業している場合があるため、これらのことを実行するための標準のlinux-fuについて学びたいと思います新しいマシンで。
だから、どのようにすることができますmv
し、ls
私が使用するのと同じ方法ファイルdir
とrename
ファイルを?