Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如何先处理目录,然后处理目录下的文件和目录?_Unix_Find - Fatal编程技术网

Unix 如何先处理目录,然后处理目录下的文件和目录?

Unix 如何先处理目录,然后处理目录下的文件和目录?,unix,find,Unix,Find,在我的Linux系统上,我遇到了这样一种情况:在安装的驱动器上的目录上没有写/执行权限。因此,在打开某个目录的权限之前,我无法进入该目录。每次安装驱动器时都会发生这种情况。安装操作由发动机罩下的工具完成,因此我怀疑是否可以修改安装参数以解决此问题 作为一种解决方法,我使用这个find命令来修改目录上的权限。我重复使用它,因为每次运行它都会得到一级以上的目录 find . -type d -print0 | xargs -0 -n 1 chmod a+wrx 我相信有更好的方法可以做到这一点。我

在我的Linux系统上,我遇到了这样一种情况:在安装的驱动器上的目录上没有写/执行权限。因此,在打开某个目录的权限之前,我无法进入该目录。每次安装驱动器时都会发生这种情况。安装操作由发动机罩下的工具完成,因此我怀疑是否可以修改安装参数以解决此问题

作为一种解决方法,我使用这个
find
命令来修改目录上的权限。我重复使用它,因为每次运行它都会得到一级以上的目录

find . -type d -print0 | xargs -0 -n 1 chmod a+wrx
我相信有更好的方法可以做到这一点。我想知道是否有一个
find
选项,它首先处理一个目录,然后处理它的内容-与
-depth |-d
选项相反

有什么建议吗?

试试:

chmod +wrx /path/to/mounted/drive/*

另一种可能是研究该特定文件类型可用的装载选项(我猜这里是FAT/VFAT,但可能是其他类型)。某些文件系统具有装载选项,用于以某种形式覆盖默认权限。。。这还可以避免更改所有权限,当您将文件系统放回其原始源位置时,可能会产生一些影响(这是来自相机的存储卡还是其他东西或U盘,还是…?)

感谢unix.stackexchange.com上的StarNamer,这里有一些非常有效的方法:

尝试:

这将导致find在尝试读取目录之前执行chmod,而不是尝试生成列表并将其提供给xargs


发件人:

您应该尝试在Bitcasa客户端(Bitcasa.com)装载的文件夹上询问它。此文件夹最初是在Mac电脑上创建的,后来它就坏了。我使用Bitcasa的Windows客户端备份Bitcasa。现在Linux客户机可用了,我正在Linux上使用它,但是这个文件夹有问题。
find . -type d -exec chmod a+rwx {} ';'