すべてのサブディレクトリにあるchmodファイルのみ


54

誰かがchmodで私を助けてください、私は次のファイル構造を持っています

-dir1
--file1
--file2
--dir1a
---file1a1
---file1a2
--dir1b
---file1b1
---file1b2

dir1およびすべてのsubdirの下のすべてのファイルに655chmodするにはどうすればよいですか?したがって、すべてのファイルには655のアクセス許可があり、すべてのディレクトリは元のままになります。

ありがとうございました

回答:


108

使いやすい

find . -type f -exec chmod 655 -- {} +

ファイル名にスペースが含まれているか、ダッシュで始まる場合、@ sagarchaliseから提案されている他のソリューションは機能しません。


16
関連して、すべてのディレクトリをchmodのためにあなたが使用できるfind . -type d -exec chmod 755 {} +755へのすべてのディレクトリを変更するには
クリス・ハーパー

2
+とは何ですか?
-Brettski

3
@Brettski:+記号はfind、ファイルパスのリスト(または長すぎる場合はその一部)まで展開されます。
-enzotib

3
何のためですか?
オリエント

2
--コマンドラインオプションの終わりを示します。これにより、ハイフンで始まるファイルがコマンドラインオプションとして解釈されるのを防ぎます--
ティムティスダル

8

中に入っdir1

find . -type f | xargs chmod 655

トリックを行います。


これも機能しますが、「No
such

@manetic:私の答えで述べたように、スペースを含むファイル名に依存します。
-enzotib

4
完全を期すために、それを変更してfindを見つけます。-type f -print0 | xargs -0 chmod 655は、@ enzotibの答えがより簡潔であるにもかかわらず、スペースの問題を解決するだろう
マットフリーク

マット・フリークが言ったこと
セルギーKolodyazhnyy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.