[PATCH cifs-utils 2/2] smbinfo: add filenormalizednameinfo subcommand
ChenXiaoSong
chenxiaosong at chenxiaosong.com
Tue Sep 15 06:34:29 UTC 2026
From: ChenXiaoSong <chenxiaosong at kylinos.cn>
Example:
1. touch /mnt/dir/long-file-name
2. ./smbinfo filenormalizednameinfo /mnt/dir/long-file-name
Normalized Name: dir\long-file-name
Signed-off-by: ChenXiaoSong <chenxiaosong at kylinos.cn>
---
bash-completion/smbinfo | 3 ++-
smbinfo | 9 +++++++++
smbinfo.rst | 2 ++
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/bash-completion/smbinfo b/bash-completion/smbinfo
index 54e2ff5..06478c6 100644
--- a/bash-completion/smbinfo
+++ b/bash-completion/smbinfo
@@ -14,6 +14,7 @@ smb_info()
filefsfullsizeinfo
fileinternalinfo
filemodeinfo
+ filenormalizednameinfo
filepositioninfo
filestandardinfo
filestreaminfo
@@ -33,7 +34,7 @@ smb_info()
;;
'fileaccessinfo'|'filealigninfo'|'fileallinfo'|'filealternatenameinfo'|\
'filebasicinfo'|'fileeainfo'|'filefsfullsizeinfo'|'fileinternalinfo'|\
- 'filemodeinfo'|'filepositioninfo'|\
+ 'filemodeinfo'|'filenormalizednameinfo'|'filepositioninfo'|\
'filestandardinfo'|'filestreaminfo'|'filecompressioninfo'|'fsctl-getobjid'|\
'getcompression'|'setcompression'|'list-snapshots'|'quota'|'secdesc'|'keys'|\
'gettconinfo'|'notify')
diff --git a/smbinfo b/smbinfo
index 1f1f3c4..f9a8c4d 100755
--- a/smbinfo
+++ b/smbinfo
@@ -37,6 +37,7 @@ SMB2_O_INFO_FILE = 0x01
# QUERY INFO levels
FILE_ALTERNATE_NAME_INFORMATION = 21
FILE_COMPRESSION_INFORMATION = 28
+FILE_NORMALIZED_NAME_INFORMATION = 48
# ioctl ctl codes
CIFS_QUERY_INFO = 0xc018cf07
@@ -262,6 +263,10 @@ def main():
sap.add_argument("file")
sap.set_defaults(func=cmd_filemodeinfo)
+ sap = subp.add_parser("filenormalizednameinfo", help="Prints FileNormalizedNameInfo for a cifs file")
+ sap.add_argument("file")
+ sap.set_defaults(func=cmd_filenormalizednameinfo)
+
sap = subp.add_parser("filepositioninfo", help="Prints FilePositionInfo for a cifs file")
sap.add_argument("file")
sap.set_defaults(func=cmd_filepositioninfo)
@@ -457,6 +462,10 @@ def cmd_filealternatenameinfo(args):
return cmd_filenameinfo(args, FILE_ALTERNATE_NAME_INFORMATION,
"Alternate Name")
+def cmd_filenormalizednameinfo(args):
+ return cmd_filenameinfo(args, FILE_NORMALIZED_NAME_INFORMATION,
+ "Normalized Name")
+
def print_filenameinfo(buf, label):
name_length = struct.unpack_from('<I', buf, 0)[0]
name = buf[4:4 + name_length].decode("utf-16le")
diff --git a/smbinfo.rst b/smbinfo.rst
index 8356617..7aa3ecd 100644
--- a/smbinfo.rst
+++ b/smbinfo.rst
@@ -63,6 +63,8 @@ COMMAND
`filemodeinfo`: Prints the FileModeInformation class
+`filenormalizednameinfo`: Prints the FileNormalizedNameInformation class
+
`filepositioninfo`: Prints the FilePositionInformation class
`filestandardinfo`: Prints the FileStandardInformation class
--
2.55.0
More information about the samba-technical
mailing list