tro*_*jan 1 command-line bash files directory
没有扩展名的文件和文件夹有什么区别?我的意思是,当我在终端中创建一个文件时,例如:
touch somefile
Run Code Online (Sandbox Code Playgroud)
然后删除该文件并创建一个同名目录:
mkdir somefile
Run Code Online (Sandbox Code Playgroud)
他们看起来一样ls。如何在不使用的情况下区分它们cd somefile?
另外,我不知道没有扩展名的文件在 Linux 中是如何工作的。我在互联网上找不到文章,所以我希望你能帮助我。
最简单的方法是使用file命令,该命令通常用于确定文件的类型(请参阅 参考资料man file)。所以,如果你运行:
file somefile
Run Code Online (Sandbox Code Playgroud)
输出是:
somefile: directory
Run Code Online (Sandbox Code Playgroud)
那么somefile显然是一个目录。
如果somefile不是目录,则您将根据文件的类型获得输出。例如,如果somefile是 PNG 图像,您将获得类似于以下内容的信息:
somefile: PNG image data, 730 x 518, 8-bit/color RGBA, non-interlaced
Run Code Online (Sandbox Code Playgroud)
Linux 上的文件不一定有扩展名。引用Byte Commander在问题Do file-extensions have any purpose (for the operating system) 中的回答?:
通常Linux 不依赖文件名(和文件扩展名,即通常最后一个句点之后的文件名部分),而是通过检查其内容的前几个字节并将其与已知幻数列表进行比较来确定文件类型.
你可以运行
ls -l
Run Code Online (Sandbox Code Playgroud)
目录将具有d权限,例如
drwxr-xr-x
Run Code Online (Sandbox Code Playgroud)
Ubuntu 中的目录也是蓝色的。
让我们通过创建一个文件 ( test) 和一个目录 ( testfile) 来测试一下:
me:~$ touch test
me:~$ mkdir testfile
Run Code Online (Sandbox Code Playgroud)
如果您使用彩色终端,则可以使用普通旧终端看到差异ls。目录有不同的颜色:
me:~$ ls
test testfile # Oops, we said color!
Run Code Online (Sandbox Code Playgroud)
如果您使用单色终端,请使用该-l标志。您可以在输出的第一列中看到差异:
me:~$ ls -l
total 4
-rw-rw-r-- 1 me me 0 Aug 14 11:49 test
drwxrwxr-x 2 me me 4096 Aug 14 11:49 testfile
Run Code Online (Sandbox Code Playgroud)