我看到这个问题的语法:ext4上的出生是空的
sudo debugfs -R "stat <$(stat -c %i /home/user/path/to/file)>" /dev/sda5
我知道命令替换$()
和``
.
我隐约知道<()
and>()
语法。
但我从来没有见过<$()>
。
那它有什么作用呢?
答案1
<$()>
<
对于从文件(部分)读取的命令来说,这将是有效的 bash 语法,其中文件名是使用命令替换($()
部分)创建的,将输出重定向到其他文件(>
部分)。例子:
$ echo text > FILE
$ wc < "$(echo FILE)" > WC_OUT
$ cat WC_OUT
1 1 5
但是,在您链接到的答案中,<$()>
参数中使用了 to debugfs
。其中man debugfs
写道:
统计文件规范
显示 inode filespec 的 inode 结构的内容。
和:
filespec 参数可以以两种形式指定。第一种形式是用尖括号括起来的索引节点号,例如 <2>
在这种情况下:
sudo debugfs -R "stat <$(stat -c %i FILE)>" /dev/sda5
将被 shell 扩展为等价的:
sudo debugfs -R "stat <4476834>" /dev/sda5
这是一个有效的debugfs
命令。检查它echo
:
$ echo sudo debugfs -R "stat <$(stat -c %i FILE)>" /dev/sda5
sudo debugfs -R stat <4476834> /dev/sda5