这是输出 ls -l
ls -l
total 53484
drwxr-xr-x 3 root root 4096 2011-02-10 05:59 ~
-rw-r--r-- 1 root root 54313810 2011-02-13 05:09 jobs.jar
-rw-r--r-- 1 root root 384035 2011-02-15 05:33 jobsLog.out
Run Code Online (Sandbox Code Playgroud)
我不能这样做,rm -rf ~ 因为这会删除我的主目录。
我该怎么办?这对我来说不是问题,只是眼痛。
通常要删除文件名中带有空格的文件,您必须运行:
$ rm "file name"
Run Code Online (Sandbox Code Playgroud)
但如果我想删除多个文件,例如:
$ find . -name "*.txt" | xargs rm
Run Code Online (Sandbox Code Playgroud)
这不会删除其中包含空格的文件。
我正在尝试删除通过 PHP 脚本上传到我的服务器的 png 图像。每当我尝试通过 ftp 和终端删除它时,我都会收到错误消息
No such file or directory
Run Code Online (Sandbox Code Playgroud)
但是,当我ls在目录中时,该文件被列出并且它也被列在我的 ftp 客户端中。我尝试创建一个同名的文件,但最终得到了两个同名的文件。
我可以打开据称不存在的文件,但我仍然无法删除它。我也试过重新启动我的服务器。任何想法可能是什么问题?我正在运行 64 位版本的 Ubuntu,但我认为它不是 32/64 位的问题。我还应该注意我已经删除了许多其他由同一个 PHP 脚本上传的 png 文件。
输出 ls -l
total 224
-rw-r--r-- 1 www-data www-data 222838 May 13 04:14 qyxdshyikfr_fishing_timeout.png
-rw-r--r-- 1 root root 272 May 14 06:54 upload.php
Run Code Online (Sandbox Code Playgroud)
尝试时输出 rm
rm: cannot remove ‘qyxdshyikfr_fishing_timeout.png’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
上传.php:http ://pastebin.com/z87eypTY
我的朋友不断使用终端删除我的文件。所以请帮助我解释如何为rm命令设置密码。
假设我有一个这样的目录树:
FOLDER:
file1
file2
file3
Subfolder1:
file1
file2
Subfolder2:
file1
file2
Run Code Online (Sandbox Code Playgroud)
如果我使用rm -r FOLDER/*,FOLDER 中的所有内容都将被删除,包括子目录。如何在不删除实际目录的情况下删除 FOLDER 及其子目录中的所有文件?
在犯下了通过 删除我的整个文件系统的臭名昭著的错误sudo rm -rf /*,从我所做的可怕的损害中恢复并应对我的寿命刚刚缩短了 6 年的事实之后,我开始想知道为什么甚至可以这样做,并且可以做些什么来防止这种错误的发生。
向我建议的一种解决方案是从我的帐户中撤销 root 访问权限,但这很不方便,因为很多命令都需要 root 访问权限,而当您每天必须运行几十个命令时,这很烦人。
备份系统是显而易见的方法。但是恢复备份也需要一些停机时间,并且取决于您的系统,停机时间可能是几天或几周,这在某些情况下是不可接受的。
我的问题是:当用户尝试删除他们的文件系统时,为什么不执行确认?因此,当您真的想要这样做时,您只需按 Y 或输入,如果您不这样做,至少您不会失去一切。
我创建了一个名为“shadi”的目录并为其设置了此权限
sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul 1 01:58 shadi
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我有“其他”权限,但为什么我不能删除它?
sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied
Run Code Online (Sandbox Code Playgroud) 我无意中-r在我的主目录中创建了一个文件。现在我无法摆脱它:
rm -rf
rm: missing operand
Try 'rm --help' for more information.
Run Code Online (Sandbox Code Playgroud)
其他尝试:
rm /-/r
rm: cannot remove ‘/-/r’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
另一个:
rm \-r
rm: missing operand
Try 'rm --help' for more information.
Run Code Online (Sandbox Code Playgroud)
有没有办法删除这个文件而不删除整个目录?
我需要定期清理文件夹。我得到一个包含文本的文件列表,哪些文件是允许的。现在我必须删除不在这个文件中的所有文件。
例子:
dont-delete.txt:
dontdeletethisfile.txt
reallyimportantfile.txt
neverdeletethis.txt
important.txt
Run Code Online (Sandbox Code Playgroud)
我的文件夹 do clean-up 包含此示例:
ls /home/me/myfolder2tocleanup/:
dontdeletethisfile.txt
reallyimportantfile.txt
neverdeletethis.txt
important.txt
this-can-be-deleted.txt
also-waste.txt
never-used-it.txt
Run Code Online (Sandbox Code Playgroud)
所以这个文件应该被删除:
this-can-be-deleted.txt
also-waste.txt
never-used-it.txt
Run Code Online (Sandbox Code Playgroud)
我搜索了一些东西来创建一个删除命令,并带有一个选项来排除文件提供的一些文件。
在很多情况下, a 的使用*几乎是不可避免的——例如,rm -rf *在一个包含数千个子文件夹和文件的文件夹中。
但是如果您只想从rm命令中排除一两个文件或文件夹怎么办?我GOOGLE了我的路周围,才发现好像挺复杂的解决方案,find . -depth -not \( -name 'one' -o -name 'two' \
-o -name 'three' \) -exec rm {} \;如规定在这里。
是否有可能以更简单的方式做到这一点 - 没有绕道而行find?例如rm -rf --exclude='one' --exclude='two' --exclude='three' *像在 rsync 或只是rm -rf -e 'one','two','three' *?
甚至可能排除某些事物的一般可能性*(因此其他命令,例如cp, mv, ... 不必实现自己的命令)?类似的东西*{'one','two','three'}?
rm ×10
command-line ×7
bash ×3
permissions ×2
delete ×1
files ×1
find ×1
password ×1
scripts ×1
xargs ×1