1

私は頻繁に入力する必要があります

#!/usr/bin/bash
for i in files-*
do
    mv $i ${i/files/items}
done

これはもっと簡単にできますか?

4

3 に答える 3

2

一行で:はい。より簡単に: おそらくそうではありません。

for i in files-*; do mv "$i" "${i/files/items}"; done

このようなことが頻繁に必要な場合は、それを関数にカプセル化して、その関数を呼び出すことができます。または、好みのエディターで何らかのテンプレート/テキスト ブロック/マクロを定義します。

于 2013-03-23T21:44:43.723 に答える
1

インストール済みの場合はperl、次を使用できますrename

rename 's/files/items/' files-*
于 2013-03-23T21:45:28.673 に答える
1

Ansgar が既に提案したものよりも大幅に短くなることはありません。ただし、いくつかのメカニズムを使用して入力を節約できます。

Bash コマンド履歴

コマンドを思い出すには、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??? どのようなシステムを使用していますか?

于 2013-03-23T21:57:11.340 に答える