如何获取我可以删除的文件夹列表?

时间:2012-02-29 13:58:25

标签: shell file-permissions directory

我可以在我的目录中获取文件列表:

 ls -v

但是如何只隔离我有权删除的文件夹的名称?

1 个答案:

答案 0 :(得分:3)

一开始这可能是一个令人惊讶的事实,但是特定目录中的所有目录都可以被您删除或者没有。关键是删除(和创建)目录时重要的权限是目录的权限,而不是您尝试创建/删除自身的目录。您甚至可能不是相关目录的所有者,仍然可以将其删除:

$ mkdir t9
$ chmod a-rxw t9
$ sudo chown root t9
$ ls -ald t9
d--------- 2 root user 4096 Feb 29 12:10 t9
$ rmdir t9 # no error!

您可以使用以下shell命令测试当前目录的写权限:

[ -w . ] && echo "writeable parent directory"

顺便说一下,要列出当前$ PWD中的所有目录,这应该足够了:

ls -al | grep ^d

编辑:这可能就是您所需要的。

#!/bin/bash

for dir in `ls -al | grep ^d | awk '{print $9}'`
do
    [ -w $dir ] && echo "user can write in $dir"
done