GNU/Linux >> Linux の 問題 >  >> Linux

ファイル名からディレクトリを作成し、bashを移動します

= の前後に空白は許可されていません

dir="${file%%.*}"

逆に、空白は必須です テスト中。

if [ -e $dir ]; then
    ^       ^

スタイルの改善に関しては、不必要な mkdir -p を実行しても害はありません 、だから if を取り除くことができます

課題では引用符は必要ないため、dir= から削除できます。 ライン。ただし、引用はどこでも良い考えなので、他の引用を削除しないでください。

.* を追加すると良いかもしれません for ループに。そうすれば、スクリプトを複数回実行しても、新しく作成されたサブディレクトリを移動しようとしません。 BR*.* W0*.* を短くすることは (必ずしも改善とは限りませんが) 巧妙なトリックです。 {BR,W0}*.* まで .

for file in {BR,W0}*.*; do
    dir=${file%%.*}
    mkdir -p "$dir"
    mv "$file" "$dir"
done

Linux
  1. Linux Bash:複数の異なるファイルを同じディレクトリに移動する

  2. bash から変数をエクスポートして Python で使用する

  3. Linux で 10.2 が Wolfram Mathematica ディレクトリを作成しないようにする

  1. すべてのファイル(非表示を含む)をあるディレクトリから別のディレクトリに移動するにはどうすればよいですか?

  2. すべてのファイルを現在のディレクトリから上位ディレクトリに移動する方法は?

  3. bash - 関数から配列を返し、内容を表示する

  1. Bashスクリプト内からフルパスを取得しますか?

  2. Bashのファイル名から名前を抽出しますか?

  3. 6 Linux のファイルとディレクトリを移動または名前変更する mv コマンドの例