标签: recursive

Unix 上的递归移动实用程序?

有时我有两棵树,它们曾经具有相同的内容,但已经不同步了(因为我移动了磁盘或其他什么)。一个很好的例子是我从 Fedora 镜像上游包的树。

我想通过将所有文件从 tree1 移动到 tree2 来再次合并这两棵树。

通常我这样做:

rsync -arv tree1/* tree2
Run Code Online (Sandbox Code Playgroud)

然后删除tree1。

但是,这需要大量的时间和磁盘空间,并且能够更容易地做到:

mv -r tree1/* tree2
Run Code Online (Sandbox Code Playgroud)

换句话说,递归移动。它会更快,因为首先它甚至不会复制,只需移动 inode,其次我不需要最后删除。

这存在吗?

作为测试用例,请考虑以下命令序列:

$ mkdir -p a/b
$ touch a/b/c1
$ rsync -arv a/ a2
sending incremental file list
created directory
./
b/
b/c1
b/c2

sent 173 bytes  received 57 bytes  460.00 bytes/sec
total size is 0  speedup is 0.00
$ touch a/b/c2
Run Code Online (Sandbox Code Playgroud)

现在什么命令可以将 a/b/c2 移动到 a2/b/c2 然后删除 a 子树(因为其中的所有内容都已经在目标树中)?

unix recursive

6
推荐指数
1
解决办法
2万
查看次数

Linux递归删除保留第一个目录

这里的第一个问题,我通常在 StackOverflow 上。

我需要删除目录的所有内容,但不是目录本身,因为我无权删除该实际目录。这看起来很简单,但我无法找到此命令。提前致谢。

linux directory recursive

6
推荐指数
1
解决办法
2812
查看次数

在没有 for 循环的情况下重新启动 systemctl 上的所有特定单元?

这里有人能够启动/停止/重新加载/...使用通配符或 systemctl 上的类似方法指定的单位列表吗?

我尝试做类似的事情:systemctl restart openstack-nova-*.servicessystemctl restart openstack-nova-?.services

但这是一个死胡同,我在 systemctl 的手册上没有找到任何有用的东西。

我可以使用 for 循环,但在此之前我必须systemctl -t service --failed为列出的单位制作一个然后 grep ......有点无聊不是吗?

所以,如果有人知道是否可以做这样的事情,我会很高兴听到的。

如果不是,我想我会在 systemctl 开发人员列表上提出这个想法,或者如果我有时间的话可能会打补丁 ^^

recursive systemctl

6
推荐指数
1
解决办法
2060
查看次数

域的权威 DNS 服务器是否必须允许递归以允许 CNAME 记录指向其他域?

所以我在 Dreamhost 上注册了一个域,它显然不进行递归查找,并且在 Heroku 上有一个应用程序。Heroku 应用程序始终配置为使用 CNAME 记录到proxy.heroku.com.

所以:

Authoritative DNS:  ns1.dreamhost.com (for foo.com)

CNAME record:       app.foo.com -> proxy.heroku.com

Resolves to:        Set of A records for EC2 IPs
Run Code Online (Sandbox Code Playgroud)

一些试图从 Windows Server 2003 DNS 服务器后面连接到该应用程序的人告诉我,它以不同的方式处理 SERVFAIL 并且无法解析 DNS。我试图了解这是否真的是我或他们的配置问题,特别是根据标题:

域的权威 DNS 服务器是否必须递归以允许 CNAME 记录指向其他域?

domain-name-system cname-record recursive dreamhost heroku

5
推荐指数
1
解决办法
4928
查看次数

Active Directory 组是否可以间接将其自身包含在循环中?

一个群体是否有可能直接或间接地包括自己?

换句话说,是否可以创建以下结构:

Group-A
  ?? Group-B
           ?? Group-C
                    ?? Group-A (递归循环)

AD 是否检测并防止此类情况,或者是否允许它们并处理递归循环。

如果我有 AD 森林的管理权限,而且我不害怕解开现实的结构,我会自己测试一下。可悲的是,谷歌 - 在回答这个问题时几乎没有帮助......尽管我可能没有在搜索输入框中做出正确的咒语。

security active-directory recursive

5
推荐指数
1
解决办法
2439
查看次数

将 DNS 从一个提供商迁移到另一个提供商时缓存更新

这可能是 Windows DNS 特定问题或一般 DNS 最佳实践问题 - 我不确定!

我们将我们的第 3 方 DNS 条款从提供商 A 迁移到提供商 B。

我注意到我们的内部递归 Windows DNS 服务器仍然为指向提供商 A 的服务器的域缓存了 NS 记录,即使几天前我与我们的注册商更改了名称服务器,即使选择缓存记录的属性显示 TTL 为1天。

在此缓存中的 NS 记录过期 24 小时后,DNS 服务器是否会返回 TLD 服务器以更新权限,还是会优先访问 dns1.providera.com,因为这是它缓存的内容?

在这种情况下,我安排让提供商 A 的服务器运行一周以允许更改传播,因此 dns1.providera.com 仍处于活动状态,并且仍会提供表示 dns1.providera.com 的 NS 和 SOA 记录。负责这个域。鉴于这一事实,Windows DNS 服务器是否会返回 TLD 并获取权限更改,还是只是假设一切正常并在其缓存的 NS 记录上更新时间戳?

我想知道确保缓存选择它的最佳方法是什么。我是不是该:-

(1) 将提供者 A 的服务器留在原地并处于活动状态并等待缓存赶上......基本上我们现在正在做的事情似乎有问题 - 可能专门针对 Windows 服务器,或者可能更广泛。(2) 将提供者 A 的服务器留在原地,但更改它们提供的 NS 和/或 SOA 信息以告诉缓存新服务器负责。(3) 在 2*TTL 之后移除提供者 A 的服务器以强制更新剩余的缓存。

(2) 的问题在于,在提供者 A 的系统上,我似乎无法将 NS 或 SOA …

domain-name-system windows-server-2003 cache recursive

5
推荐指数
1
解决办法
251
查看次数

绕过本地存根区域的 DNSSEC

我在 Internet DMZ 中使用 bind 9.9.2 作为 DNSSEC 验证递归解析器。我想将我的内部 DNS 服务器作为存根区域(理想情况下)或从属区域以外的任何区域(以避免非常大的区域传输)。我们使用可路由的 ip 空间进行内部寻址。抱歉,如果我在示例中使用的是您拥有的 IP 空间,但 167.xxx 是我发现的第一个适合我的问题的区域。

例如

dnssec-enable yes;
dnssec-validation yes;
dnssec-accept-expired no;
zone "16.172.in-addr.arpa" {
  type stub;
  masters { 167.255.1.53; }
}

zone "myzone.com" in {
type stub;
  masters { 167.255.1.53; }
}
Run Code Online (Sandbox Code Playgroud)

当查询到达 DNS 服务器时,它们尝试进行验证,但失败了,因为 167.in-addr.arpa 有一个 RRSIG 记录,但子区域没有(也不应该!)。本示例中使用了 Google dns,但实际上它是我的递归解析器。

    @8.8.8.8 -x 167.255.1.53 +dnssec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 17488
;; flags: qr …
Run Code Online (Sandbox Code Playgroud)

domain-name-system bind recursive

5
推荐指数
1
解决办法
1344
查看次数

我可以减少大型递归 find + chmod 命令的 CPU 使用率吗?

我使用以下命令来执行权限修复:

sudo find . -type f -exec chmod 470 {} \;
Run Code Online (Sandbox Code Playgroud)

有数千个文件需要更新权限。它还会在运行期间增加 CPU 使用率。

使用纯 chmod 递归更新进一步修改文件权限的后续调用不会占用 CPU 资源

sudo chmod 770 -R /path/to/directory
Run Code Online (Sandbox Code Playgroud)

我在寻找什么:

  • 在此调用期间减少 CPU 使用率的方法
  • 可能会过滤到需要更新权限的文件

find recursive chmod

3
推荐指数
1
解决办法
264
查看次数

如何更改文件夹的权限,而不是文件?

是否有一个简洁的 linux 命令(适用于 OSX)来更改文件夹及其所有内容的权限,但不更改当前目录中的文件?例如:

/parent/folder1 <-更改权限
/parent/folder2 <-更改权限
/parent/folder3 <-更改权限
/parent/folder3/file1 <-更改权限
/parent/folder3/file2 <-更改权限
/parent/file1 <-不要更改权限
/parent/file2 <-不要更改权限

linux permissions mac-osx recursive chmod

1
推荐指数
1
解决办法
4762
查看次数

递归删除文件(bash)

我熟悉如何用 PHP 解决这个问题,但是我想更多地练习 bash 脚本。

任务是删除文件夹中的所有文件,该文件夹本身包含子文件夹(带有文件)。这些文件通常是 .pdf(或某些变体:PDF、Pdf、pDf 等),但有时可能会有其他文件类型,包括我目前未知的扩展名。

这是我到目前为止所拥有的。它与文件名相呼应,但如果我发出 rm $i,系统将返回在每个文件上找不到的文件。

for i in `ls -bRC1 /foo/temp_folders/* ` ; do echo $i ; rm $i ; done
Run Code Online (Sandbox Code Playgroud)

发出 rm $i 时如何强制使用绝对路径?

files bash recursive

0
推荐指数
1
解决办法
160
查看次数

chown 中 -r 选项的用途

新手来了 有人可以用简单的语言解释“递归地”做某事的意思吗?我查看了 HOURS 的搜索结果,但没有找到任何简单地用简单的英语说明其含义的内容。例如,如果我在 chown 中使用 -r 选项,那有什么作用?

谢谢!

recursive chown

-1
推荐指数
1
解决办法
182
查看次数