我写了一个bash脚本来检索文件系统中近来几天的文件信息红旗linux官网,一些子文件夹下的文件将被排除。下边是这个脚本(test.sh)。

#!/bin/bash
date_range=$1
base_dir=$2
excluded_dir=$3
# Command initialization
cmd="find $base_dir"
for item in ${excluded_dir[@]}
do
  cmd="$cmd -not ( -path '$base_dir/$item' -prune )"
done
cmd="$cmd -type f -mtime -$date_range -ls"
echo $cmd
$cmd

linux查找文件夹命令_linux查找替换命令_linux查找一个命令

我试了一个反例,如下所示。

./test.sh 3 /root "excluded_folder1 excluded_folder2" 

命令已被初始化为。

linux查找替换命令_linux查找一个命令_linux查找文件夹命令

find /root -not ( -path '/root/excluded_folder1' -prune ) -not ( -path '/root/excluded_folder2' -prune ) -type f -mtime -3 -ls

假如我在我的终端中运行这个find命令linux文本编辑器,它可以正常工作linux查找文件夹命令linux查找文件夹命令,我可以得到我想要的结果。而若果是在bash脚本中执行。我总是得到这样一个错误。

find: paths must precede expression: (
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

有没有人晓得问题出在那里,怎么解决?

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复