Shell脚本列出文件夹中的所有文件

Shell脚本列出文件夹中的所有文件

请帮我编写shell脚本来列出文件夹中的所有文件,然后如果文件名以“C”开头,则将其权限更改为777,并删除以“F”开头的文件

我的上述问题的代码是

for item in *
do
    if [ -f $item ]
    then
       echo $item
    fi 
    if [ $item  c* ]
    then
       chmod 777 -f c*
       echo $item
    fi
    if [ $item  f* ]
    then 
        rm -v f*
        echo $item
    fi
    
    
         
done 

请指正

答案1

这不是解决您问题的答案。这是关于您的问题的答案(需要一些格式和比评论中允许的更多的空间)。

  1. 如果这是一项家庭作业,你应该说明这一点,并且你不应该要求有人为你解决这个问题,但你可以提出具体问题,以便更多地了解 Unix。

  2. 由于它似乎是家庭作业,该任务的想法可能不是“完成事情”,而是教你编程和思考,所以这不是回答这些问题的正确渠道。

3- 您可以在这里做的是,在将问题分解为多个部分后,询问:

  • 我如何列出所有文件?,
  • 如何使用模式进行搜索?
  • 如何在过滤其中一些文件后对文件应用命令?
  • 我想使用 shell 命令来执行此操作吗?或者
  • 我会使用 bash 作为编程语言吗?

如果您的作业是关于循环、case 语句和 if 工作流程的编程,并且您对此有具体问题,那么 Stack Overflow 可能是一个更好的地方。

如果您是 Linux 新手,并且还不知道命令或管道的魔力或如何使用 shell 脚本来自动执行这些命令(这​​是管道而不是编程),可以询问它,这样您就可以学习关于过滤grep并使用 执行xargs,或过滤并使用 执行find … -exec

例如,在 Linux 中,您可以列出文件ls并进行过滤grep(这里您需要查找“开头为”的正则表达式)。

一旦你知道了这一点,你需要决定是否要将它放入循环或管道中xargs(我建议你学习 的力量xargs)。

这是一句经典的俏皮话,可以让你走上正轨:

ls | grep  "^c" | xargs -I{} echo "wanted_command -options command {}"

所以你可以编写一个脚本来自动化它。

如果这是一个作业,我建议您为每个操作创建一个函数(您需要阅读有关在 shell 中创建函数的内容),以便在每个if/case语句中调用适当的函数。

相关内容