我有一个看起来像这样的发现:
rm -f crush-all.js
find . -type f \( -name "*.js" ! -name "*-min*" ! -name "*console*" \) | while read line
do
cat "$line" >> crush-all.js
echo >> crush-all.js
done
Run Code Online (Sandbox Code Playgroud)
我想添加以排除查找中名为“test”的目录,但我似乎无法弄清楚如何以某种方式添加“-type d”。我是怎么做的?
谢谢!
在 中find -name "*.mp3",.mp3 之前有一个星号。不*匹配它之前的字符多次吗?但是星号前面什么都没有,那有什么作用*呢?还是因为该find命令不使用正则表达式?那么,..mp3 中的字符是正则表达式字符还是find只是将其解释为要匹配的句点?
我有一个abc/def/efg包含许多子目录(例如:)的目录(例如abc/def/efg/(1..300))。所有这些子目录都有一个公共文件(例如,file.txt)。我只想在这个file.txt排除其他文件的情况下搜索一个字符串。我怎样才能做到这一点?
我用过 grep -arin "pattern" *,但是如果我们有很多子目录和文件,它会很慢。
我想显示所有具有 .bak 扩展名的文件。
kaykav@ubu2:~/Documents$ ls
cdIndex1-60 met.bak tem.bak
Run Code Online (Sandbox Code Playgroud)
我输入 cmd : $ find . -name *.bak
为此,我在正确的目录中。我收到以下消息:
查找:路径必须在表达式之前:tem.bak
这意味着什么?手册页没有帮助。
我使用命令
find . -type f -exec sha256sum {} \; > sha256SumOutput
Run Code Online (Sandbox Code Playgroud)
散列文件夹层次结构中的每个文件。不幸的是,sha256sum没有find按字母顺序获取文件名。如何解决这个问题?
我想在对它们进行散列之前对它们进行排序,以便按字母顺序对它们进行散列(这是有原因的)。
我想做以下事情:
/root 中找到所有世界可写的文件和文件夹。我们能否为此类问题提供命令行解决方案?
我使用以下命令清除一个目录,其中包含超过 30 天的文件和目录,并将它们移动到一个存档目录,如果没有人要求取回他们的文件,我可以在几周后将其删除。目标目录有用户名的子目录,归档目录也有。
这是我使用的命令:
find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \;
Run Code Online (Sandbox Code Playgroud)
我建议修改此版本来回答有关 ask ubuntu 的问题,另一个用户编辑了代码以更改行尾\;,+因为它更快(并且更正确?)。看这里
但是,+如果该-exec命令ls -lh不在我使用的实际命令中,则以这种方式使用是有效的。如果我尝试它,+我会收到一条错误消息:
find: missing argument to '-exec'
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它会这样,或者正确的命令是什么。请不要只是发布命令更正,我想了解而不是盲目地遵循建议。
如何找到具有某些特定权限的文件列表?
我想查找拥有所有者权限的root用户拥有的文件rwx。
有没有办法找到此类文件的列表?我正在使用 Ubuntu 16.04。
我想知道.c在大型复杂目录结构中有多少常规文件具有扩展名,以及这些文件分布在多少个目录中。我想要的输出只是这两个数字。
我已经看到有关如何获取文件数的问题,但我也需要知道文件所在的目录数。
.或开头-并带有空格或换行符。.c,结尾的符号链接,以及指向目录的符号链接。我不希望跟踪或计算符号链接,或者我至少想知道它们是否以及何时被计算在内。.c文件。我在(Bash)shell中匆匆写了一些命令来自己计算,但我认为结果不准确......
shopt -s dotglob
shopt -s globstar
mkdir out
for d in **/; do
find "$d" -maxdepth 1 -type f -name "*.c" >> out/$(basename "$d")
done
ls -1Aq out | wc -l
cat out/* | wc -l
Run Code Online (Sandbox Code Playgroud)
这会输出关于不明确重定向的抱怨,错过当前目录中的文件,并在特殊字符上绊倒(例如,重定向find输出在文件名中打印换行符)并写入一大堆空文件(oops)。
如何可靠地枚举我的.c文件及其包含的目录?
如果有帮助,这里有一些命令来创建一个带有错误名称和符号链接的测试结构:
mkdir -p cfiles/{1..3}/{a..b} && cd cfiles
mkdir space\ d
touch -- i.c -.c bad\ .c 'terrible
.c' not-c …Run Code Online (Sandbox Code Playgroud) 当我使用
find /home/user/parentdir -type d -empty -delete
Run Code Online (Sandbox Code Playgroud)
它递归地查找里面的空子文件夹/home/user/parentdir并删除它们。但是如果/home/user/parentdir也是空的,它也会删除parentdir文件夹,这对我来说是不可取的。
我想将此保留parentdir到rsync一些文件中以进行备份或云计算。处理后,我需要删除空文件夹,但parentdir每次重新创建似乎都无济于事。
有parentdir什么建议要保留吗?我想在其中创建一个.nocopy文件并将其从 中排除rsync,但看起来有点矫枉过正。有没有更优雅的方式?
find ×10
command-line ×7
bash ×3
permissions ×2
files ×1
grep ×1
rsync ×1
scripts ×1
syntax ×1