以下示例显示如何创建仅具有读取权限的文件。正如我们所见,当我尝试使用 echo 命令写入该文件时,我得到了Permission denied.
但是为什么,在我们使用 vi 的情况下,我们没有得到Permission denied?从这里可以看出,即使文件是只读的,我们也可以写入文件。
这里发生了什么?这是一个vi错误吗?
[admin@madona-machine1 ~]$ touch test-file
[admin@madona-machine1 ~]$ ls -ltr
total 0
-rw-r--r-- 1 admin admin 0 Apr 13 07:32 test-file
[admin@madona-machine1 ~]$ chmod -w test-file
[admin@madona-machine1 ~]$ ls -ltr
total 0
-r--r--r-- 1 admin admin 0 Apr 13 07:32 test-file
[admin@madona-machine1 ~]$ echo try_to_write > test-file
-bash: test-file: Permission denied
[admin@madona-machine1 ~]$ vi test-file
I am good singer,
~
~
~
~
~
~
~
"test-file" …Run Code Online (Sandbox Code Playgroud) Ubuntu 10.04ls可以显示 unicode 字符,但tree不能显示,即使使用tree --charset unicode或utf8。有没有办法解决。 echo可以解释转义字符,除非cat list.txt | echo -e不起作用(list.txt来自 tree > list.txt)
更新:tree -H www.somewhere.com可以输出unicode(应该是UTF-8)但现在看来这是唯一的方法——作为一个网页。
$ ls -R
.:
list2.txt list.txt ????????????????.txt ??
./??:
??2.txt ??.txt
$ tree --charset unicode
.
|-- list2.txt
|-- list.txt
|-- \344\271\205\346\234\252\345\234\250\351\201\212\350\241\214\345\240\264\345\220\210\351\234\262\351\235\242\347\232\204\345\211\215\347\270\275\347\265\261\346\235\216\347\231\273\350\274\235.txt
`-- \351\201\212\350\241\214
|-- \345\244\247\345\256\2662.txt
`-- \345\244\247\345\256\266.txt
1 directory, 5 files
$ tree --charset utf8
.
??? list2.txt
??? list.txt
??? \344\271\205\346\234\252\345\234\250\351\201\212\350\241\214\345\240\264\345\220\210\351\234\262\351\235\242\347\232\204\345\211\215\347\270\275\347\265\261\346\235\216\347\231\273\350\274\235.txt
??? \351\201\212\350\241\214
??? \345\244\247\345\256\2662.txt …Run Code Online (Sandbox Code Playgroud) 我正在尝试删除某个目录中的一堆文件(在 Mac OS X 上使用终端)
ls | grep \([1-9]\) | xargs rm
Run Code Online (Sandbox Code Playgroud)
应该可以解决问题,但事实并非如此。我正在尝试删除文件名中括号中带有一位数字的任何文件(从网络下载的重复项),但最终会执行以下操作:
> rm: 520syllabus2010: No such file or
> directory rm: (3).pdf: No such file or
> directory
Run Code Online (Sandbox Code Playgroud)
因为它没有正确解释空间。应删除“520syllabus2010 (3).pdf”
这样做的正确方法是什么?
谢谢,杰夫
我在使用 ls -l 列出某个目录时遇到问题:
$ ls -l ./directory
-????????? ? ? ? ? ? file001.txt
-????????? ? ? ? ? ? file002.txt
Run Code Online (Sandbox Code Playgroud)
只是 ls 效果很好:
$ ls ./directory
file001.txt file002.txt
Run Code Online (Sandbox Code Playgroud)
怎么了?
我无法理解ls有关具有rw-模式的文件的手册。这是报价:
如果
r,文件可读;如果?,则不可读。如果
w,文件是可写的;如果?,则不可写。以下第一个适用:
S如果在所有者权限中,则该文件不可执行并设置了 set-user-ID 模式。如果在组权限中,则该文件不可执行并设置了 set-group-ID 模式。
s如果在所有者权限中,则该文件是可执行的并且设置了 set-user-ID 模式。如果在组权限中,则该文件是可执行的,并且设置了 setgroup-ID 模式。
x该文件是可执行的或目录是可搜索的。
?该文件既不是可读、可写、可执行的,也不是 set-user-ID 或 set-group-ID 模式,也不是粘性的。
特别是,它似乎以粗体相互矛盾的两个部分:根据第一个,因为模式开头r,该文件是可读的,但是根据最后一个,该文件是不可读的。但是,显然,情况并非如此。
那么,关于文件“既不可读也不可写......”的第三部分是什么意思?
参考书目
ls手册页。wwoorrdd用于粗体和_w_o_r_d下划线。问题与 .shell 脚本有关bash。
如何使用脚本检查当前目录中的哪些文件是软链接?
如果我使用了错误的术语,当我说soft links 时,我指的是使用ln -s.
我唯一能想到的是ls -la作为一个表达式进行评估,并解析它的结果,但这显然不是最好的解决方案。
ls -v在 Mac OS X 中是否有等效的版本号排序?
在 Mac OS X 中,ls -v不进行版本号排序,但 Finder 似乎可以。
可能重复:
ls -la 符号……最后一个符号是什么意思?
考虑 OS X 10.5.8 上 ls -l 的以下输出
drwxr-xr-x 3 user staff 102 Aug 26 20:21 downloads
drwxrwxrwx@ 10 user staff 340 Aug 26 20:12 images
Run Code Online (Sandbox Code Playgroud)
谁能告诉我权限部分末尾的@ 代表什么,以及如何禁用/启用它。我想这与目录列表权限有关,因为当我在 Apache 中运行 PHP 脚本需要访问没有设置 @ 位的文件夹时,它不会列出目录内容。
谢谢!
我总是必须在打印的作业报告中提交源代码。我必须将我的课程代码复制并粘贴到文档中,我发现这是一项烦人的任务。
我想解决这个“复制和粘贴”问题。因此,我是这样做的cat,但它仅适用于当前目录。我希望它可以递归显示文件内容。
ls -R *.java | xargs cat >> all_course.txt
Run Code Online (Sandbox Code Playgroud) 我有一个目录.gz,我想与 GNU 并行并行扩展每个存档。但是我没有取得任何成就。
我试过
parallel 'gunzip {}' ::: `ls *.gz`
parallel gunzip `ls *.gz`
Run Code Online (Sandbox Code Playgroud)
没有结果,bash 告诉我:
/bin/bash: archive1.gz: command not found
...
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
谢谢