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