Bash脚本筛选出主目录中大于100KB的文件,并询问是删除它们还是存档它们
请有人帮我写以下脚本。它应该在主目录中找到100kb以上的所有文件,并询问每个文件是否应该添加到存档或删除。 我在堆栈溢出上只发现了一个类似的问题,解决方案是Bash脚本筛选出主目录中大于100KB的文件,并询问是删除它们还是存档它们,bash,archive,Bash,Archive,请有人帮我写以下脚本。它应该在主目录中找到100kb以上的所有文件,并询问每个文件是否应该添加到存档或删除。 我在堆栈溢出上只发现了一个类似的问题,解决方案是rsync-a--max size=100kB sourcedir destdir,但我的问题是如何停止脚本,让用户决定如何处理每个文件。目前,它显示的问题与主目录中的文件数量一样多,但我无法输入任何答案。 脚本应该(在一个单独的文件中)记录删除文件的时间和名称 #!/bin/bash find ${HOME} -size +100k| w
rsync-a--max size=100kB sourcedir destdir
,但我的问题是如何停止脚本,让用户决定如何处理每个文件。目前,它显示的问题与主目录中的文件数量一样多,但我无法输入任何答案。
脚本应该(在一个单独的文件中)记录删除文件的时间和名称
#!/bin/bash
find ${HOME} -size +100k|
while read filename; do
read -p "Delete the file (y for yes) or add to the archive (n dla no)?" yn;
case $yn in
[Yy]* ) tar -c archiwum.tar $filename; echo "$filename `time`">> record ;;
[Nn]* ) rm $filename;;
* ) echo "Please answer yes or no";;
esac
done
while true; do
为此,您需要使用
read
命令从终端读取,但需要使用while循环从命令读取:
#!/bin/bash
while read filename; do
read -u 3 -p "Delete the file (y for yes) or add to the archive (n dla no)?" yn
case $yn in
[Yy]* ) tar -c archiwum.tar $filename;;
[Nn]* ) rm $filename;;
* ) echo "Please answer yes or no";;
esac
done 3<&0 < <( find ${HOME} -size +100k )
#/bin/bash
读取文件名时;做
读取-u 3-p“删除文件(y表示是)或添加到存档(n dla否)?”yn
案件$yn
[Yy]*)tar-c archiwum.tar$filename;;
[Nn]*)rm$filename;;
*)回应“请回答是或否”;;
以撒
完成3从tty
读取:读取-p“删除…”