bashスクリプトを実行して、サブディレクトリのファイルに.csvを追加し、コンピュータ上のすべてのファイルを移動/削除します。

bashスクリプトを実行して、サブディレクトリのファイルに.csvを追加し、コンピュータ上のすべてのファイルを移動/削除します。

100 個のサブフォルダーがあるフォルダーがあり、各フォルダーには .csv を追加する 2 つのファイルが含まれています。私はbashスクリプトを書いた:

#!/bin/bash

for i in * ; do     
    cd $i   
    for k in *; do      
        mv "$k" "${f%.*}.csv"
    done
    cd .. 
done

私のファイルはすべてどこに行きましたか?どうやって受け取ることができますか?

答え1

mv "$k" "${f%.*}.csv"

変数が定義されていないため、f置換全体は空の文字列と同じではなく、コマンドはになりますmv "$k" ".csv"

各ディレクトリから1つのファイルを除いてすべてが失われました。最後の名前は今です.csv。先頭にあるドットは、ls -aそのファイルを表示するために使用されるファイルを隠すため、気付かない可能性があります。 GUIファイルマネージャには、通常隠しファイルを表示するオプションもあります。

関連情報