cat 命令的属性

cat 命令的属性

一个简单的问题,我可以创建一个文件吗在我想要的地点& 使用命令 &不使用管道&并且该位置是我当前所在的其他地方。 (我希望能进行编辑)

答案1

$ cat > location/i/want/theFileImCreating

cat并没有真正创建文件。它只是写入其标准输出。在上面的命令中,输出重定向 ( >)(由 shell 设置)创建文件(或清空已存在的文件)。

默认情况下,重定向 ( >) 会破坏目标(如果存在)。如果你想阻止这种情况,set -o noclobber那就是你的朋友。

如果您不想用任何内容填充文件,touch将创建一个新的空文件(或更新现有文件的时间戳)。

如果您想严格“创建”一个新文件(包括其路径),则辅助 shell 函数/脚本可能会派上用场:

fcreat(){
  while (( "$#" )); do
   [ ! -f "$1" ] && {
      mkdir -p "$(dirname "$1")";
      touch "$1";  
   }; shift
  done
}

用法:

$ fcreat location1/i/want/file1 location2/i/want/file2
$ tree
$ tree
.
├── location1
│   └── i
│       └── want
│           └── file1
└── location2
    └── i
        └── want
            └── file2

创造:我不知道我是否正在成为 Unix 专家,或者我是否只是失去了拼写能力。

相关内容