簡體   English   中英

如何將源文件夾中的權限復制到目標?

[英]How to copy permissions from source folder into destination?

我有兩個包含相同層次結構和文件的包(目錄)。 我需要將源包中每個項目的權限復制到位於目標包中的文件中。 我不應該復制文件,只能復制權限。

是否可以使用shell腳本或者我應該努力並編寫應用程序來執行此操作?

它不是bash ,但是在OS X中可以使用zsh ,因此您可以嘗試以下操作(我使用%作為提示來指示您何時在zsh ; for>是輔助提示)

$ zsh
% for x in source/**/*; do
for> chmod $(stat -f "%p" $x) ${x/^source/dest}
for> done
% exit
$

for循環以遞歸方式遍歷source下的所有文件。 stat -f "%p" $x輸出源目錄中文件的權限,用作更改相應文件權限的命令的參數(即,在其名稱中將“source”替換為“dest” )在目標目錄中。

(實際上,該循環也適用於bash 4,但正如您可能已經注意到的那樣,OS X仍然附帶bash 3.2。)


作為名為foo.zsh的獨立腳本:

#!/bin/zsh
for x in source/**/*; do
  chmod $(stat -f "%p" $x) ${x/^source/dest}
done

$ chmod +x foo.zsh
$ ./foo.zsh

或者干脆

$ zsh foo.zsh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM