Bash脚本筛选出主目录中大于100KB的文件,并询问是删除它们还是存档它们

Bash脚本筛选出主目录中大于100KB的文件,并询问是删除它们还是存档它们,bash,archive,Bash,Archive,请有人帮我写以下脚本。它应该在主目录中找到100kb以上的所有文件,并询问每个文件是否应该添加到存档或删除。 我在堆栈溢出上只发现了一个类似的问题,解决方案是rsync-a--max size=100kB sourcedir destdir,但我的问题是如何停止脚本,让用户决定如何处理每个文件。目前,它显示的问题与主目录中的文件数量一样多,但我无法输入任何答案。 脚本应该(在一个单独的文件中)记录删除文件的时间和名称 #!/bin/bash find ${HOME} -size +100k| w

请有人帮我写以下脚本。它应该在主目录中找到100kb以上的所有文件,并询问每个文件是否应该添加到存档或删除。 我在堆栈溢出上只发现了一个类似的问题,解决方案是
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“删除…”