我正在检查下面目录列表中是否存在目录。下面是列出的表格。这是关于此类目录的唯一可用表。
用户@根>猫你
目录所有者值
-------- ---- -----
0-0-1-0 Aleks 10
0-0-2-0拉姆23
0-0-3-0马克43
0-0-4-0萨姆22 0-0-5-0木21 0-0-6-0彼得34
0-0-7-0 ron 45
0-0-8-0 Alic 44
0-0-9-0琥珀56
0-0-10-0 janny 34用户@根> cat u | grep -Ev“owner | - ”| awk'{print $ 1}'
0-0-1-0
0-0-2-0
0-0-3-0
0-0-4-0
0-0-5-0
0-0-6-0
0-0-7-0
0-0-8-0
0-0-9-0
0-0-10-0
我想登录从0-0-1-0
到0-0-10-0
的所有目录并执行一些操作。我怎样才能做到这一点 ?
例如,我想验证所有目录中是否存在XYZ
目录。
user @ root> test -d 0-0-1-0 / XYZ;如果[“$?” !=“0”];然后回显“目录丢失”fi
我认为如果我可以在某个变量中逐步存储每一行的值,那么问题将得到解决。
答案 0 :(得分:0)
如果你知道DIR_NAME_TO_BE_SEARCHED,那么你可以使用以下命令:
找到YOUR_STARTING_DIRECTORY -type d -name DIR_NAME_TO_BE_SEARCHED -print
示例:
找到。 -type d -name test -print解释:
将找到从当前目录开始的所有目录(-type d),其名称为test(-name test)并输出它们(-print)。
如果你不知道确切的DIRECTORY_NAME_TO_BE_SEARCHED,那么你也可以使用模式:
找到YOUR_STARTING_DIRECTORY -type d -name" DIR_NAME_TO_BE_SEARCHED_PATTERN" -print
例如: 找 。 -type d -name" * test *" -print
答案 1 :(得分:0)
您可以像这样处理您的文件列表:
#!/bin/sh
for dir in $(awk 'NR>2 {print $1}' $1)
do
if [[ -d "$dir" ]]
then
cd "$dir"
pwd
# Do random stuff
fi
done
运行如下脚本:
./script.sh my_list_of_files
如果目录存在,它将cd到该目录并运行pwd。
但是有一个警告,如果你的任何目录中有空格,这个脚本会有点混乱。