标签: directory

计算目录中文件数量的最有效资源的方法是什么?

CentOS 5.9

前几天我遇到了一个问题,一个目录有很多文件。数一数,我跑了ls -l /foo/foo2/ | wc -l

原来在一个目录中有超过 100 万个文件(长话短说——根本原因正在得到解决)。

我的问题是:有没有更快的计数方法?获得计数的最有效方法是什么?

ls shell bash directory

58
推荐指数
4
解决办法
4万
查看次数

在多个平台上找到正确的 tmp 目录

I have a script that needs to create temporary files for its work, and clean up after itself. My question is about finding the right base directory for the temporary files.

The script needs to work on multiple platforms: Git Bash (Windows), Solaris, Linux, OSX. On each platform, the preferred temp directory is expressed differently:

  • Windows: %TMP% (and possibly %TEMP%)
  • OSX: $TMPDIR
  • Linux, UNIX: supposed to be $TMPDIR but appears to be unset on multiple systems I tried

So …

directory shell-script tmp

57
推荐指数
3
解决办法
3万
查看次数

如何递归列出子目录?

显而易见的

ls -dR
Run Code Online (Sandbox Code Playgroud)

不起作用。

我目前正在使用

find /path/ -type d -ls
Run Code Online (Sandbox Code Playgroud)

但输出不是我需要的(子文件夹的简单列表)

有出路吗?

ls directory find

56
推荐指数
3
解决办法
19万
查看次数

为什么是 '。' Unix 中的硬链接?

我已经看到很多解释为什么基于 Unix 的操作系统中空目录的链接数是 2 而不是 1。他们都说这是因为 '.' 目录,每个目录都指向它自己。我明白为什么会有一些“。”的概念。对于指定相对路径很有用,但是在文件系统级别实现它有什么好处?为什么不让 shell 或采用路径的系统调用知道如何解释它呢?

'..' 是一个真正的链接对我来说更有意义——文件系统需要存储一个指向父目录的指针才能导航到它。但我不明白为什么“。” 成为一个真正的链接是必要的。它似乎也导致了实现中的一个丑陋的特殊情况——你会认为你只能释放链接数小于 1 的 inode 使用的空间,但如果它们是目录,你实际上需要检查一个链接数小于 2。为什么不一致?

shell filesystems directory hard-link

51
推荐指数
2
解决办法
3416
查看次数

使用 find 获取目录名称列表

我知道我可以这样做来获取目录名称列表:

find . -type d -maxdepth 1 
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

.
./foo
./bar
Run Code Online (Sandbox Code Playgroud)

我更喜欢没有./. 有没有办法让 find 只输出原始名称?

我尝试将列表发送到 stat 以对其进行格式化,但这只是给了我相同的结果:

find . -type d -maxdepth 1 -print0 | xargs -0 stat -f '%N'
Run Code Online (Sandbox Code Playgroud)

directory find

51
推荐指数
5
解决办法
13万
查看次数

如何删除特定文件夹中具有特定扩展名的所有文件?

如果我将当前/工作目录(使用 导航到它cd)设置为某个特定目录,然后键入:

rm *.xvg
Run Code Online (Sandbox Code Playgroud)

这个命令会做什么?这是真的,上面的命令将删除文件扩展名为.xvg 只有在工作目录?

在询问之前,我对尝试此操作感到紧张,因为我想绝对确定上述命令只会删除位于 WORKING DIRECTORY 中的.xvg文件。

shell bash directory rm

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

有没有办法防止从用户拥有的目录中删除某些文件?

假设用户有Directory1并且它包含File1 File2 CantBeDeletedFile 如何使用户永远不会被允许删除CantBeDeletedFile

如果我更改Directory1的所有权并删除写入权限,用户将无法删除任何文件。他们也无法添加新文件等。

我只是希望能够设置一些永远不会被删除的文件。

更具体的描述。

我正在创建用户配置文件。我正在他们的Desktop 中创建应用程序启动器文件。所以我想设置一些启动器文件 (.desktop) 并让它们让用户只能启动它们而他们不能重命名或删除,只需启动。

当前,如果用户拥有包含任何文件的目录。他可以删除。

如果没有适用于所有 *nix 的通用方法,那就是 Linux 和 ext4 FS。

permissions directory rm

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

为什么在添加任何内容之前,新目录的硬链接计数为 2?

假设我只是创建目录 newDirectory 然后我执行 ls -ld 命令。我看到硬链接的数量是2。从一开始,硬链接2到底是什么?当前目录中的子目录数是否等于硬链接数 - 2?

ls directory

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

cd .. 在根文件夹上

为什么cd ..在根文件夹中键入,没有警告或失败并出现错误?

我希望:

/$ cd ..
-bash: cd: ..: No such file or directory
Run Code Online (Sandbox Code Playgroud)

相反,我留在了/。当然,这是因为..确实存在于 中/,并且很简单/,就像.。我只是想知道为什么会这样。

directory cd-command

46
推荐指数
3
解决办法
1万
查看次数

如何在一个命令中创建文件和父目录?

是否有一个标志/选项touchmkdir>,或其他一些命令,让我产生在同一时间一个文件和任何不存在的父目录?

例如,假设我在一个空文件夹中。现在,如果创建文件夹时父目录不存在,我可以创建它们

mkdir -p nested/folder
Run Code Online (Sandbox Code Playgroud)

我可以在现有目录中创建文件

touch nested/folder/something.txt
Run Code Online (Sandbox Code Playgroud)

但是我无法在尚不存在的目录中创建文件

touch nested/folder/deep/more.txt
Run Code Online (Sandbox Code Playgroud)

触摸:无法触摸“嵌套/文件夹/深度/更多.txt”:没有这样的文件或目录

我如何在创建该deep文件夹的同时创建该文件夹more.txt

command-line directory directory-structure touch mkdir

46
推荐指数
1
解决办法
6万
查看次数