标签: find

如何将子目录中的所有文件递归移动到单个目录?

我试图将当前目录下的所有文件和所有子目录收集到一个目录中。我正在尝试类似以下内容

find -type f -exec mv {} collection/{} \; 
Run Code Online (Sandbox Code Playgroud)

上面的命令不起作用,因为第二个{}给出了完整路径,我如何收集所有文件?

command-line find

10
推荐指数
2
解决办法
2万
查看次数

如何找到可执行文件

我知道有一个查找开关。但我想知道如何搜索特定类型的文件。例如,我需要一种仅搜索可执行文件的终端命令。

find

10
推荐指数
2
解决办法
8199
查看次数

管道到“键入”命令

我想找出几个命令的类型。是否可以将管道或xargs搜索结果从Linux 中findtype命令输入到命令中?

例如:

find . -name anacron | type
Run Code Online (Sandbox Code Playgroud)

或者

find . -name anacron | xargs type
Run Code Online (Sandbox Code Playgroud)

command-line bash find

10
推荐指数
2
解决办法
1870
查看次数

'top' 显示使用 100% CPU 时间的 'echo "find"' 进程

我有一台 Ubuntu 14.04 服务器,发现某些进程以 root 权限运行并占用了我所有的处理器时间。这些过程称为“回声“查找””。这些是什么,我该如何阻止它们?

回声“查找”进程

cpu-load process find cpu echo

10
推荐指数
1
解决办法
1662
查看次数

在 find 命令后使用连接器

我希望我的 bash 仅在找到某些内容时才使用 find 命令打印“找到”。但是使用 && 无济于事:即使什么也没找到,我也会打印“找到”。例子:

$ pwd
/data/data/com.termux/files/home/test/test1/test4
$ ls
xaa  xab
$ find . -name xac && echo 'found'
found
$ find . -name xaa && echo 'found'
./xaa
found
Run Code Online (Sandbox Code Playgroud)

command-line find

10
推荐指数
2
解决办法
719
查看次数

查找目录中每个扩展名的文件数

我想计算目录中每个扩展名的文件数以及没有扩展名的文件数。

我尝试了几个选项,但还没有找到可行的解决方案:

  • find "$folder" -type f | sed 's/.*\.//' | sort | uniq -c是一个选项,但如果没有文件扩展名则不起作用。我需要知道有多少文件没有扩展名。

  • 我还尝试了一个 find 循环到一个数组中,然后对结果求和,但此时该代码抛出了一个未声明的变量错误,但仅在循环之外:

    declare -a arr
    arr=()
    echo ${arr[@]}
    
    Run Code Online (Sandbox Code Playgroud)

    这将抛出一个未声明的变量,一旦 find 循环完成。

command-line extension find

10
推荐指数
5
解决办法
1023
查看次数

在特定时间段之间修改的文件列表

我正在尝试获取在特定时间段之间修改的文件列表,如答案中所述。

我将日期和时间存储在两个变量 [nn 和 nn1(愚蠢的命名)] 中并尝试使用find命令。我收到以下错误 -

vikram@vikram-Studio-XPS-1645:~$ echo $nn1
10-04-12 23:26:48
vikram@vikram-Studio-XPS-1645:~$ echo $nn
10-05-12 00:26:48
vikram@vikram-Studio-XPS-1645:~$ find . -newermt $nn -and -not -newermt $nn1 -print
find: paths must precede expression: 00:26:48
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
vikram@vikram-Studio-XPS-1645:~$
Run Code Online (Sandbox Code Playgroud)

为什么会出现这个错误??

indicator command-line find timestamp

9
推荐指数
1
解决办法
2万
查看次数

如何将文件从具有给定扩展名的子目录递归移动到目标文件夹?

我想将所有*.txt文件从位于给定目录中的所有子目录移动到一个目标目录。

执行以下操作时,它会移动每个文件 - 如何将其减少到所有*.txt文件?

find -type f -print0|xargs -0r mv -it "/path to my folder/destination-directory"
Run Code Online (Sandbox Code Playgroud)

command-line find

9
推荐指数
2
解决办法
3840
查看次数

取出“拒绝访问”行

当我find用来查看目录中的所有 pdf 文件时/home,我看到的是access denied. 为了消除它们,我尝试过:

find /home -iname "*.pdf" | grep -v "access denied"
Run Code Online (Sandbox Code Playgroud)

然而,结果是一样的。我怎样才能摆脱这些线?

command-line bash find

9
推荐指数
2
解决办法
2554
查看次数

按重命名前的名称搜索文件

这些年来,我收集和存储了数十万个文件,个人资料,例如照片、视频和文档。它们中的大多数是按类型、日期和主题组织的……但有些(如 10k 文件)没有组织,并且在大约 2 年前从一个目录移动到另一个目录并重命名了几次。我正在寻找其中一些文件的(路径)(希望我没有意外删除它们)。

  1. 文件重命名是否保存在任何日志或元数据中?

  2. 有没有办法使用重命名前的名称搜索旧文件?如果是,我使用什么命令或工具?

我知道文件类型、大致尺寸和一些可能的名称,但仍然没有找到任何find命令。

  1. 有没有一种方法可以在硬盘驱动器 (SSD) 中搜索特定路径中(可能)已删除的文件,而无需重建整个分区的文件布局表(这可能需要永恒!?)?

filesystem files find rename logs

9
推荐指数
1
解决办法
269
查看次数

标签 统计

find ×10

command-line ×7

bash ×2

cpu ×1

cpu-load ×1

echo ×1

extension ×1

files ×1

filesystem ×1

indicator ×1

logs ×1

process ×1

rename ×1

timestamp ×1