我正在尝试编写一个脚本,从"HS_client_list“中的子目录中找到超过10个小时的文件。并将输出发送到"find.log“文件。
#!/bin/bash
while IFS= read -r line; do
echo Executing cd /moveit/$line
cd /moveit/$line
#Find files less than 600 minutes old.
find $PWD -type f -iname "*.enc" -mmin +600 -execdir basename '{}' &
我正在尝试编写一个bash脚本,该脚本在指定的目录树中搜索文件内容,以确定是否存在指定的子字符串.
。
仅使用grep的S递归函数是不够的,因为我可能需要遍历系统的/目录(和所有子目录),这使得grep耗尽内存并中止。因此,我决定使用find获得指定目录树中所有目录和子目录的列表,并使用以下变量表示传递给脚本的参数。
searchdir=$HOME # passed in a script argument
searchstr="secret" # passed in a script argument
我调用find实用程序并将输出存储到一个临时文件中。
TF=$(
我正在尝试一个文件夹中的所有子文件夹:
find . -type d -maxdepth 1 -mindepth 1 2>/dev/null | while read dir
do
echo $dir
done
然而,我被印出来的是
./dir1
./dir2
虽然我只需要
dir1
dir2
完整用例:
稍后,我想创建一个具有文件夹名称的新文件,例如:
find . -type d -maxdepth 1 -mindepth 1 2>/dev/null | while read dir
do
echo 'MOVING TO'$dir
cd $di
目标:列出所有jars中的文件。
这是可行的:
for f in `find . -name "*.jar"`; do jar tvf $f; done
这也行得通:
find . -name "*.jar" -exec jar tvf {} \;
这不会(它不打印任何输出):
find . -name "*.jar" | xargs jar tvf
为什么后者不起作用?