フォルダ名から最初の文字を削除 [重複]

フォルダ名から最初の文字を削除 [重複]

ディレクトリ名の最初の文字を削除する方法は?例:フォルダ名が「AFolder_01」の場合、名前を「Folder_01」に変更する方法

私の問題の原因は、フォルダのリストがあり、最初の文字を削除してすべてのフォルダの名前を一度に変更したいからです。最後の文字を削除するためにオンラインでこのコードを見つけました。

  while IFS= read -r dir; do [[ -d $dir ]] && mv -i "$dir" "${dir%?}"; done <all.txt
  1. このコードを修正して最初の文字を削除するにはどうすればよいですか?つまり、私の例では、「AFolder_01」の名前を「Folder_01」に変更しています。
  2. このコードを変更してフォルダ名の先頭に Charterer を再追加するにはどうすればよいですか?たとえば、「Folder_01」を「AFolder_01」に名前を変更します。

ベストアンサー1

ディレクトリ名を変数(たとえばdir)に入れたら、次のことができます。

mv "$dir" "${dir:1}"

これにより、変数から最初の文字が削除されます。新しいディレクトリがすでに存在しないことを確認するのはあなたの役割です。

最初に何かを追加するには(例:文字A):

mv "$dir" "A$dir"

おすすめ記事