我想将某个父目录中所有文件和子目录的组权限设置为该特定文件或目录的用户权限设置。
例如,下面的所有内容 /path/to/parentdir
# Permissions before
# Path Permissions
/path/to/parentdir/file1 755
/path/to/parentdir/file2 644
/path/to/parentdir/file3 600
# Permissions after
/path/to/parentdir/file1 775
/path/to/parentdir/file2 664
/path/to/parentdir/file3 660
Run Code Online (Sandbox Code Playgroud)
我希望有一种简单的方法可以在一个命令中做到这一点。我可以想到使用带有一堆命令的脚本的方法,但感觉应该有一种非常直接的方法。
提前致谢!
设想:
Linux mint 正在我家的一台机器上运行。我在上面打开了一些 gui 应用程序。
我不在家,但想获得开放的应用程序。我有 cygwin/x 并且我知道如何ssh -X homecomputer,我可以从那里运行 gui 应用程序,但我想访问本地显示器上已经打开的窗口。
有没有办法在不使用 VNC 之类的额外软件的情况下附加到 linux 上现有的 x 会话?
谢谢!
我正在尝试在 bash 脚本中运行类似于以下命令的命令。它应该搜索所有子文件夹$sourcedir并将特定类型的所有文件复制到$targetdir.
#!/bin/bash
# These are set as arguments to the script, not hard-coded
sourcedir="/path/to/sourcedir"
targetdir="/path/to/targetdir"
find "$sourcedir" -type f -name "*.type" -exec sh -c 'cp "$1" "$2/`basename "$1"`"' "{}" "$targetdir" \;
Run Code Online (Sandbox Code Playgroud)
这似乎非常接近,除了{}没有被传递$2到-exec sh -c ...
我想尽可能接近“正确的方式”,并容忍文件名中的特殊字符(特别是单引号字符)。
编辑:我看到有人建议使用xargs或参数链接。我的印象是这仅适用于有限数量的参数。例如,如果我有数以千计的 .jpg 文件,我试图从多个画廊目录复制到一个巨大的幻灯片目录中,那么链接参数的解决方案是否仍然有效?
编辑 2:我的问题是我_在-exec命令中的第一个选项 sh 之前缺少一个。对于任何对如何使 find 命令工作感到好奇的人,添加_,一切都会好起来的:
find "$sourcedir" -type f -name "*.type" -exec sh -c 'cp "$1" "$2"' _ "{}" …Run Code Online (Sandbox Code Playgroud)