【问题标题】:How to get a list of folders that I can remove?如何获取我可以删除的文件夹列表?
【发布时间】:2012-03-19 00:25:23
【问题描述】:

我可以得到我目录中的文件列表:

 ls -v

但是我怎样才能只隔离我有权删除的文件夹的名称呢?

【问题讨论】:

  • 你是要文件夹列表,还是说你有足够权限删除的文件夹列表?这当然是可能的,但它会涉及到你是否可以根据所有用户、组和其他来删除它。如果这就是你想要的,我会想出一个更详细的答案。

标签: shell file-permissions directory


【解决方案1】:

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

$ 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

【讨论】:

  • 我创建文件并且可以删除它。如何找到:指定用户有权删除文件的目录列表?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
相关资源
最近更新 更多