首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本来查看目录中的文件。

脚本来查看目录中的文件。
EN

Stack Overflow用户
提问于 2014-03-04 01:24:32
回答 1查看 441关注 0票数 2

我正在编写一个脚本,它显示了一个名为“回收站”的目录中的所有文件。然后,脚本将提示用户他想要“取消删除”的文件,并将其发送回它的原始目录。目前,我对for语句有问题,但我也不知道如何让用户输入哪个文件,以及如何将其移回原来的目录。以下是我到目前为止所拥有的:

代码语言:javascript
复制
PATH=/home/user/Trash
for files in $PATH
do
  echo "$files deleted on $(date -r $files)"
done
echo "Enter the filename to undelete from the above list:"

实际产出:

代码语言:javascript
复制
./undelete.sh: line 6: date: command not found
/home/user/Trash deleted on
Enter the filename to undelete from the above list:

预期产出:

代码语言:javascript
复制
file1 deleted on Thu Jan 23 18:47:50 CST 2014
file2 deleted on Thu Jan 23 18:49:00 CST 2014
Enter the filename to undelete from the above list:

所以我现在有两个问题。第一个不是读取它给$files的路径值的目录中的文件,而是我在do语句中的回显命令没有正确处理。我已经改变了各种不同的方式,但不能使它正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-04 01:30:13

您在脚本中犯了许多错误,但最大的错误是设置保留路径变量PATH的值。这基本上是扰乱了标准路径,并导致错误,如date命令找不到。

通常,请避免使用脚本中的所有caps变量。

为了给您一个开始,您可以使用这样的脚本:

代码语言:javascript
复制
trash=/home/user/Trash
restore=$HOME/restored/
mkdir -p "$restore" 2>/dev/null

for files in "$trash"/*
do
  read -p "Do you want to keep $file (y/n): " yn
  [[ "$yn" == [yY] ]] && mv "$file" "restore"
done
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22161083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档