使用:
Ubuntu 20.04.4 LTS(Focal Fossa)
使用文件资源管理器时,我们有
Ctrl-I = 属性命令
父文件夹和文件显示:
/home/u3/Music/file.txt
stat 给出了不受欢迎的输出:
stat file.txt
显示
设备路径、父文件夹、文件的终端命令是什么?
所需输出的示例:
/dev/nvme0n1p2/home/u3/Music/file.txt
或者
/dev/sda5/home/u3/Music/file.txt
——
卡米尔 (Kamil) 提问:
你需要这种非标准结构做什么?
答案:
精确定位 file.txt 的位置。
Ctril-I 表示 /home/u3/Music/file.txt
但
lsblk -e7 -o PTTYPE,FSTYPE,PATH,SIZE
PTTYPE FSTYPE PATH SIZE
dos /dev/sda 931.5G
dos ntfs /dev/sda1 931.5G
dos /dev/sdb 931.5G
dos ntfs /dev/sdb1 931.5G
gpt /dev/sdc 7.3T
gpt /dev/sdc1 128M
atari ntfs /dev/sdc2 7.3T
vfat /dev/sdd 3.7G
gpt /dev/nvme0n1 465.8G
gpt vfat /dev/nvme0n1p1 512M
gpt ext4 /dev/nvme0n1p2 465.3G
在上述十一 (11) 个分区/设备中...
哪个终端命令可以精确定位 file.txt 的位置?
哪个终端命令可以精确定位
上述十一个(11)个位置之一:
/home/u3/Music/file.txt?
--
答案1
问题是:
如何显示设备路径、父文件夹、文件?
我们有父文件夹,文件:
/home/u3/Music/file.txt
但是,在哪里file.txt
?
什么设备处于file.txt
开启状态?
使用卡米尔的答案......我们有:
clear ; file=/home/u3/Music/file.txt ; device="$(findmnt -nvfo SOURCE -T "$file")" ; [ "$device" ] && lsblk -o PTTYPE,FSTYPE,PATH,NAME,MODEL,SIZE,FSAVAIL,FSUSED,FSUSE%,LABEL,MOUNTPOINT "$device" ; echo "$file" ;
输出:
PTTYPE FSTYPE PATH NAME MODEL SIZE FSAVAIL FSUSED FSUSE% LABEL MOUNTPOINT
gpt ext4 /dev/nvme0n1p2 nvme0n1p2 465.3G 395.7G 38G 8% /
/home/u3/Music/file.txt
答案:
的位置/home/u3/Music/file.txt
在/dev/nvme0n1p2
--
答案2
很简单,就像这样:我们定义一个文件路径的新变量,使用杜命令 - 我们确定挂载点,并使用awk我们输出:
filez=/home/u3/Music/file.txt && df $filez | grep dev | awk -v var=$filez '{print $1 var}'
因此,你应该得到你想要的东西:
/dev/nvme0n1p2/home/u3/Music/file.txt