繁体   English   中英

如何创建应该像 Linux 中的目录名称一样命名的文件?

[英]How to create files that should be named like the directories names in Linux?

我要创建文件,这些文件的名称应该像/目录中的目录名称

我创建了一个这样的 shell 脚本:

#!/bin/bash

cd /

declare -a array=($(ls -d */));

For i in "${array[@]}"; do
    touch $i
done

但是当我执行它时它什么也没做! 虽然当我用echo替换touch时,它确实会将目录名称打印到屏幕上。 所以我认为问题出在touch命令上?

或者,如果有另一种方法来代替 shell 脚本?

我建议为此使用find

  • 搜索所有目录-type d
  • 限制为 1 个文件夹深度-maxdepth 1
  • 为每个结果执行一个命令-exec sh -c ''
  • 删除尾部斜杠 ( / )
  • 运行touch

find / -type d -maxdepth 1 -exec sh -c 'echo ${0#/} | xargs touch' '{}' \;

在我的 MacO 上提供以下文件夹:

$ ls -ltah
total 0
-rw-r--r--   1 me     wheel     0B May 20 11:19 cores
-rw-r--r--   1 me     wheel     0B May 20 11:19 Volumes
-rw-r--r--   1 me     wheel     0B May 20 11:19 dev
-rw-r--r--   1 me     wheel     0B May 20 11:19 opt
-rw-r--r--   1 me     wheel     0B May 20 11:19 Applications
-rw-r--r--   1 me     wheel     0B May 20 11:19 Users
-rw-r--r--   1 me     wheel     0B May 20 11:19 .vol
-rw-r--r--   1 me     wheel     0B May 20 11:19 private
-rw-r--r--   1 me     wheel     0B May 20 11:19 System
-rw-r--r--   1 me     wheel     0B May 20 11:19 Library
-rw-r--r--   1 me     wheel     0B May 20 11:19 sbin
-rw-r--r--   1 me     wheel     0B May 20 11:19 bin
-rw-r--r--   1 me     wheel     0B May 20 11:19 usr
drwxr-xr-x  15 me     wheel   480B May 20 11:19 .
drwxrwxrwt  16 root   wheel   512B May 20 11:09 ..
$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM