我是一个unix新手。我正在使用 find,但由于它列出了权限被拒绝的文件夹,因此我得到的结果太多,无法显示在我的屏幕上。我试过用管道输送更多,但这似乎没有任何效果。所以,我有两个问题:
谢谢
这个命令怎么来的:
find . -name \*.css -o -name \*.php -type f
Run Code Online (Sandbox Code Playgroud)
给了我所有 *.css 和 *.php 文件的列表,但添加了 'exec' 选项:
find . -name \*.css -o -name \*.php -type f -exec chmod 664 {} \;
Run Code Online (Sandbox Code Playgroud)
仅更改文件的文件权限,*.php
而不更改*.css
?
注意:我使用的是 Amazon EC2 Linux。
我有一个复杂的目录结构,里面有很多小文件。喜欢:
/opt/data/1000/45/32/2009/10/15/76543.zip
Run Code Online (Sandbox Code Playgroud)
当我在这个目录 (/opt/data/) 上启动du
或 时find
,我的服务器负载增加了很多 (0,5 --> 25) 并且我的系统不再响应。
我可以“减慢” du/find 命令的执行速度以保持系统可访问吗?我不在乎命令是否需要 3 天才能运行 :-) 我已经尝试过但nice -n 19
没有成功......
谢谢 !
使用find命令时如何获取文件名?当我使用 find 命令从目录和子目录中搜索特定类型的文件时,我得到了该文件的整个路径,我如何只得到文件名?我面临的问题是当我将找到的文件移动到存档目录时,它说“没有这样的目录”,这是因为我在搜索文件时得到了整个路径。
这应该相当简单,但我不确定我错过了什么。
我想递归删除空目录,并获得正在删除内容的输出,此命令肯定有效,但我无法详细打印 -excec 的操作。
while [ -n "$(find . -depth -type d -empty -exec rm -v -rf {} +)" ]; do :; done
通过递归我的意思是,我想保持删除空文件夹,直到有没有其他的空文件夹。
$ tree .
.
??? empty
? ??? empty
? ??? empty
??? non-emty
??? ko
Run Code Online (Sandbox Code Playgroud)
此项只会删除树中的一个空文件夹
$ find . -depth -type d -empty -exec rmdir -v {} +
rmdir: removing directory, `./empty/empty'
Run Code Online (Sandbox Code Playgroud) 我有一个 find/grep 命令用于搜索我的项目的代码库,因此:
find folder1 folder2 folderetc -print | awk '{print "\""$0"\""}' | xargs grep -n "search-string"
Run Code Online (Sandbox Code Playgroud)
经常让我恼火的是缩小的 javascript 和 css 文件,它们将所有内容都打包成一行(由于可能错误地认为删除换行符将使下载 javascript 文件的速度明显更快)。对于这些打包或缩小的文件,总会有一个非打包版本,我想在我的结果中看到它。我从不想看到打包版本,因为它只会导致屏幕和屏幕上出现无法读取的垃圾。
没有系统的方法可以告诉 grep 避免缩小或打包文件,因为没有命名约定。但我突然想到我可以过滤掉超过 400 个字符的结果。有没有办法用 grep(或其他东西?)
是否可以在具有特定扩展属性的 linux 操作系统中搜索文件,如下所示: ---S--l---
---S--l--- 1 root root 0 Mar 1004:25/opt/csTuner/iba/wys/tuer_lolk
Run Code Online (Sandbox Code Playgroud)
权限中的S是什么:
S - 更改同步写入磁盘;这相当于应用于文件子集的“同步”挂载选项。
我的目标是搜索同步写入磁盘的文件。
find ×8
linux ×5
bash ×3
grep ×2
amazon-ec2 ×1
attributes ×1
load-average ×1
permissions ×1
scripting ×1
search ×1