Questions tagged «directory»

用于存储计算机文件的文件系统结构。

2
硬链接数变为0时是否删除目录?
硬链接数变为0时是否删除目录? 由于,目录的硬链接数始终至少为2 .。当rm -r是目录时,是否将硬链接的数量从2减少到0,而不是2,而不是1? 目录的硬链接数量可以为1吗? 谢谢。
10 directory 

6
如何检查awk中是否存在文件?[-d'文件名']失败
我正在尝试生成具有不存在的主目录集的用户列表。看来我应该可以用awk做到这一点,但是我的语法有问题。 它总是在[]处告诉我“无效语法”。我究竟做错了什么? awk -F: '{ if(![ -d "$6"]){ print $1 " " $3 " " $7}}' /etc/passwd 我可能最终要使用的最终代码是: awk -F: '{if(system( "[ -d " $6 " ]") == 1 && $7 != "/sbin/nologin" ) {print "The directory " $6 " does not exist for user " $1 }}' /etc/passwd 我在这里有一个相关的问题。
10 bash  awk  directory 

2
路径语法规则
我正在编写一个用于处理Unix路径字符串的库。在这种情况下,我需要了解大多数人不会担心的语法的一些晦涩之处。 例如,作为最好的,我可以告诉大家,似乎foo/bar并foo//bar都指向同一个地方。 同样,~通常代表用户的主目录,但是如果它出现在路径中间怎么办?那会发生什么呢? 如果我要编写能够正确处理所有可能情况的代码,则需要回答这些以及其他几十个晦涩的问题。有人知道一个明确的参考资料来解释该材料的确切语法规则吗? (不幸的是,搜索“ Unix路径语法”之类的词时,讨论该$PATH变量的页面只有一百万页。

1
查找目录中具有相同内容的所有文件夹
在Ubuntu中,是否可以在目录中查找重复的文件夹(即具有相同内容的文件夹)?我认为已经有一些命令行工具可用于查找重复文件(例如fdupes),但是我想查找重复文件夹。即,找到在其包含的文件内容方面匹配的文件夹(尽管文件名和其他元数据可能有所不同)。

3
我如何cd到上一个/下一个兄弟目录?
我经常有这样的项目目录布局 project `-- component-a | `-- files... `-- component-b | `-- files... `-- component-c `-- files... 我通常将在其中一个component目录中工作,因为这是文件所在的位置。然后,当我返回外壳程序时,通常只需要移至同级目录,尤其是当我需要对每个组件进行一些不可编写脚本的更改时。在这些情况下,我什至都不关心我将要使用的上一个兄弟目录或下一个兄弟目录。 我可以定义一个命令prev还是next将其简单cd地带入上一个目录或下一个目录(按字母或其他字母)?因为cd ../com<TAB><Arrow keys>一直以来打字都有些陈旧。

1
如何使ls仅显示有关指定目录的信息,而不显示其子文件或文件夹内容的信息?
假设我的主目录位于文件夹“ foo”中。我想获取一些有关它,所有者,组,权限等的信息。 然后,我这样做以尝试获取信息: cd ~ ls -l foo 当然,现在它列出了“ foo”的内容信息 那我可以做这样的事情 cd ~ dir=foo ls -l $foo/.. | awk 'BEGIN { dir="'$foo'" } { if($9 == dir) { print $0 } }' 但是,难道没有更简单的方法可以做到这一点吗?
10 directory  ls 


1
为什么rmdir和unlink两个单独的系统调用?
这让我有些疑惑了: [15:40:50][/tmp]$ mkdir a [15:40:52][/tmp]$ strace rmdir a execve("/usr/bin/rmdir", ["rmdir", "a"], [/* 78 vars */]) = 0 brk(0) = 0x11bb000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3772c3000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=245801, ...}) = 0 mmap(NULL, 245801, …

2
只有写权限的文件夹是没有用的吧?
在Linux上工作了多年之后,我发现自己有一些空闲时间,因此我决定重温一些基础知识。因此,我重新阅读了有关权限的内容(无需检查源代码),以及有关文件夹的特殊情况,并提出了一种新的(至少对我来说...)考虑文件夹权限的方法(针对特定用户/组/其他):我想象一个文件夹有两个表,就像这样: filename | inode foo | 111 bar | 222 在读权限意味着可以阅读(列表)表的左栏中,写入权限对应于添加和删除条目表,和执行权限对应于能够从文件名到inode的转换; 即,您可以访问文件夹的内容。 我做了一些实验,结果都与我的“世界观”保持一致,但似乎无法避免一个结论:拥有权限的文件夹d-w-------完全没有用。详细说明:您无法列出其内容,无法读取其中存在的任何文件(因为无法将名称转换为inode),不能删除或重命名或添加文件,因为这又意味着翻译,甚至不能添加硬链接(因为我想这是指添加名称和索引节点号,这意味着您将知道两者,这又又使您怀疑,这违反了取消执行权限的目的) 。当然,如果有是内部的一个这样的文件夹的文件,那么你就不能删除该文件夹或者,因为你不能删除其内容。 所以...我想问两个问题: 我的这个比喻是正确的,还是大错了? 不管以前的答案,有没有任何地方具有权限的文件夹描述是合适的情况呢?


4
查找不包含子目录的目录
我写的脚本是ksh。需要直接在当前目录下查找仅包含文件而不包含子目录的所有目录名。 我知道我可以ls -alR在第一个字段(d用于目录)中对第一个字母使用输出并对其进行递归解析。我认为这awk是解析和查找的最佳方法。 例如,ls -al当前目录中的一个简单输出: drwxr-xr-x 22 af staff 748 18 Mar 22:21 . drwxr-xr-x 5 root admin 170 17 Mar 18:03 .. -rw------- 1 af staff 3 17 Mar 16:37 .CFUserTextEncoding drwxr-xr-x 5 af staff 170 17 Mar 17:12 Public drwxr-xr-x 9 af staff 306 18 Mar 17:40 Sites …
10 shell  find  directory  ls  ksh 

1
为什么“点”文件的大小为“。” 超过4096?
今天,我发现了一个4MB大小的“空”目录。 它没有可见的内容,所以我尝试了ls -lah。这向我显示了一些隐藏文件(不是很大)。在搜索目录如此大的原因时,我发现点文件(.)的大小为3.9MB。 什么存储在该文件中?这不仅是指向同一目录的链接吗? 这是外壳程序输出(匿名): -bash# more /proc/version Linux version 2.6.18-8.1.15.el5 (mockbuild@builder6.centos.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Mon Oct 22 08:32:04 EDT 2007 -bash# pwd /data/foo/bar/tmp -bash# ls -lah total 4.1M drwxrwxrwx 3 nobody nobody 3.9M Nov 21 10:02 . drwxrwxrwx 16 nobody nobody 4.0K Aug …

6
如何仅对目录使用定位
这会发现“ Dropnot”的各个子目录下的大量文件 $ locate Dropnot 我可以只找到目录位置locate吗?(“ Dropnot”所在的目录) 因此,如果Dropnotin中/home/me/,则是唯一返回的条目。 如果是这样,最简单/最短的方法是什么? 最好是通过一个标志或符号,而不是用管道或为它加油等,但我会选择任何方式。 也许某种Dropnot $作为行尾?(但没有用)。
10 directory  locate 

2
有没有正确的方法来列出当前目录的子目录?
我可以通过以下方式找到目录的子目录 ls -d -- */ 要么 ls -l | grep "^d" 但是这两者似乎都是间接的,而且我想可以找到一种仅查找目录的标准方法。有正确的方法吗?如果不是,这两种方法中的任何一种都会导致边缘情况下的不良行为吗?(符号链接,隐藏目录等)

5
Bash脚本检测目录中文件的更改
我正在尝试制作一个脚本,用于检测目录中的任何文件是否在2秒的间隔内被更改。到目前为止,我有: #!/bin/bash for FILE in "${PWD}/*" do SUM1="$(md5sum $FILE)" sleep 2 SUM2="$(md5sum $FILE)" if [ "$SUM1" = "$SUM2" ]; then echo "Identical" else echo "Different" fi done 这只输出一次“ Identical”值,我希望它检查每个文件并为每个文件输出“ Identical”或“ Different”。 编辑:可以不安装inotify-tools软件包就完成此操作吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.