如何显示设备路径、父文件夹、文件?

如何显示设备路径、父文件夹、文件?

使用:
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

相关内容