私は頻繁に入力する必要があります
#!/usr/bin/bash
for i in files-*
do
mv $i ${i/files/items}
done
これはもっと簡単にできますか?
一行で:はい。より簡単に: おそらくそうではありません。
for i in files-*; do mv "$i" "${i/files/items}"; done
このようなことが頻繁に必要な場合は、それを関数にカプセル化して、その関数を呼び出すことができます。または、好みのエディターで何らかのテンプレート/テキスト ブロック/マクロを定義します。
インストール済みの場合はperl
、次を使用できますrename
。
rename 's/files/items/' files-*
Ansgar が既に提案したものよりも大幅に短くなることはありません。ただし、いくつかのメカニズムを使用して入力を節約できます。
コマンドを思い出すには、bash のコマンド履歴を使用します。正確にはハイテクではありませんが、これにより多くの入力を節約でき、システムに保存/変更する必要はありません。
パスのどこかに保存したスクリプト ファイルにコマンドを入力します。
#/bin/bash
for i in files-*; do
mv $i ${i/files/items}
done
この場合、読みやすさを最適化するために、複数の行をそのまま残します
コマンドのエイリアスを .bashrc ファイルに追加します
alias movem='for i in files-*; do mv $i ${i/files/items}; done'
それが完了したら、エイリアスを入力するだけでコマンドを実行できます。この利点の 1 つは、スクリプト ファイルを作成する必要がないことです。
PS: /usr/bin/bash
??? どのようなシステムを使用していますか?