Linux端末内でファイルに移動し、ファイルが空の場合は削除するbashスクリプトを作成したいと思います。
#!/bin/bash
echo " Enter name of a directory"
read Dir
for Directory in $( ls $HOME )
do
test -d $HOME/$dir
if [ $# -eq 0 ]
then
for filename in $( ls $HOME/$Dir )
do
test -d $HOME/$dir/$filename
if [ ! -s "$filename" ]
then
rm $HOME/$dir/$filename
else
echo " not empty"
fi
done
else
echo " $Dir is not a directory"
fi
done
これは私が使っているコードですが、うまくいきません。生成されたファイルを認識しますが、空でも削除しません。 Salahはそのようなファイルやディレクトリを表示しません
ベストアンサー1
編集1(Erik Renouf)永続性The Open Group Base Spec Issue 6で指定されたコンテンツを探す
編集2(ワイルドカード)+記号と生{}
これを試して交換してください。私のディレクトリ次のコマンドラインに、計算するディレクトリ名を入力します。
find "${HOME}"/mydir -size 0 -type f -exec rm {} +
"${HOME}"/mydir ディレクトリとそのサブディレクトリ (存在する場合) にあるすべての空のファイルを削除します。
スクリプトのバージョンは次のとおりです。
#!/bin/bash --
find "${HOME}"/"${1}" -size 0 -type f -exec rm {} +
テスト
以下に空のファイルをすべてリストしてください。テスト:
$ find "${HOME}"/testd -size 0 -type f
/home/jay/testd/empty_file.txt
空のファイルを削除するには、スクリプトを使用してください。
$ chmod +x clearner.sh
$ ./clearner.sh testd
空のファイルを確認してください。
$ find "${HOME}"/testd -size 0 -type f
$