将其视为转到最高级别的文件夹,执行 Ctrl 查找,然后搜索 .DS_Store 并将它们全部删除。
我希望它们全部删除,从所有子文件夹和子文件夹子文件夹等等。基本上在顶级文件夹中,任何地方都不应该有 .DS_Store 文件,甚至在它的任何子文件夹中也不应该有。
我应该输入什么命令?
假设我有这样的目录结构:
projects/
project1/
src/
node_modules/
dir1/
dir2/
dir3/
file
project2/
node_modules/
dir4/
Run Code Online (Sandbox Code Playgroud)
从开始projects/我想删除所有node_modules/目录的内容,但我不想删除其node_modules/本身,将其留空,里面没有文件夹或文件。
在上面的示例中,项目、 、 和dir1将dir2被dir3删除。filedir4
我正在寻找 OS/X 中的特定文件。
我可以使用以下命令查看文件:
ls -alR | grep "mkmf.*"
Run Code Online (Sandbox Code Playgroud)
这表明我的文件存在。
如何找到文件所在的目录。
非常感谢
我遇到索引程序运行时间比预期长得多的问题。我想排除递归符号链接的可能性。我怎样才能找到在某种程度上递归的符号链接?
我需要递归遍历文件夹的所有子目录。在子目录中,如果有一个扩展名为“.xyz”的文件,那么我需要在该文件夹中运行一次特定命令。
这是我到目前为止所拥有的
recursive() {
for d in *; do
if [ -d "$d" ]; then
(cd -- "$d" && recursive)
fi
dir=`pwd`
pattern="*.xyz"
file_count=$(find $dir -name $pattern | wc -l)
if [[ $file_count -gt 0 ]]; then
echo "Match found. Going to execute a command"
#execute command
fi
done
}
(cd /target; recursive)
Run Code Online (Sandbox Code Playgroud)
但问题是,当有匹配项时,每个文件夹会多次显示“找到匹配项...”消息。在解决这个问题的同时,有没有更简单的方法来做到这一点?
如何从终端递归删除目录中的所有“nohup.out”文件?我正在使用 CentOS。
假设我们在一个目录中有以下文件:
test.txt
test.txt~
/subdir
test1.txt
test1.txt~
Run Code Online (Sandbox Code Playgroud)
当我rm -r ./*.*~在 top dir 中运行时,只有 test.txt~ 被删除。
尽管我使用了递归标志,为什么它不执行递归删除?
您可以使用以下脚本重现我的案例:
#create dir and 1-st level test files
mkdir dir
cd dir
touch test.txt
touch test.txt~
#create subdir and 2-nd level test files
mkdir subdir
cd subdir/
touch test1.txt~
touch test1.txt
cd ..
rm -r ./*.*~
Run Code Online (Sandbox Code Playgroud) 如果我制作一个.tar.gz过孔
tar czvf - ./myfiles/ | pigz -9 -p 16 > ./mybackup.tar.gz,
我可以通过以下方式安全地解压缩目录中已经gzip 的文件吗./myfiles/an_old_backup.tar.gz ./myfiles
gzip -d mybackup.tar.gz
tar -xvf mybackup.tar
cd myfiles
gzip -d an_old_backup.tar.gz
tar -xvf an_old_backup.tar
Run Code Online (Sandbox Code Playgroud)
?可以无限安全地进行这种递归压缩吗?
如何使用带有空格和单引号的递归目录和文件名进行快速文本替换?最好使用标准的 UNIX 工具,或者一个众所周知的包。
find对于许多文件,使用速度非常慢,因为它为每个文件生成一个新进程,因此我正在寻找一种将目录遍历和字符串替换集成为一个操作的方法。
慢搜索:
find . -name '*.txt' -exec grep foo {} \;
Run Code Online (Sandbox Code Playgroud)
快速搜索:
grep -lr --include=*.txt foo
Run Code Online (Sandbox Code Playgroud)
缓慢替换:
find . -name '*.txt' -exec perl -i -pe 's/foo/bar/' {} \;
Run Code Online (Sandbox Code Playgroud)
快速更换:
# Your suggestion here
Run Code Online (Sandbox Code Playgroud)
(这个速度相当快,但是是两次传递并且不处理空格。)
perl -p -i -e 's/foo/bar/g' `grep -lr --include=*.txt foo`
Run Code Online (Sandbox Code Playgroud) 我希望将仅包含这些文件的目录内的所有文件(所有文件都是常规文件 - 该目录内没有目录、符号链接等)复制到另一个预先存在的目录。
这些文件具有非常常见的名称,例如robots.txt,并且不遵循任何特定模式。
我尝试了类似的命令:
cp -a "$HOME"/a "$HOME"/b
Run Code Online (Sandbox Code Playgroud)
我知道这-a是一个快捷组合-d(保留模式、所有权和时间戳)以及-R命令递归复制。
如果复制是递归的,为什么不复制文件以及解决方案是什么?