Samba 專案讓 Linux/Unix 能與 Windows 互操作。若僅需偶爾從 Windows 共享取檔,安裝完整 Samba 服務端屬於大材小用。samba-client 套件提供的 smbclient 工具,即可像 FTP 一樣以互動式 CLI 遠端存取 Windows 共享,輕量且強大。
# Debian/Ubuntu
sudo apt-get update && sudo apt-get install smbclient
# RHEL/CentOS/Fedora
sudo yum install samba-client
# 或
sudo dnf install samba-client
smbclient -U <用戶名> -L <主機名或IP>
$ smbclient -U barlowliu -L Barlow-pc
Enter barlowliu's password:
Domain=[CKING] OS=[Windows 7 Professional 7601 Service Pack 1] Server=[Windows 7 Professional 6.1]
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk 遠程管理
C$ Disk 預設共享
D$ Disk 預設共享
soft Disk
IPC$ IPC 遠程 IPC
Server Comment
--------- -------
BARLOW-PC
Workgroup Master
--------- -------
CKING BARLOW-PC
參數說明: -U 指定登入用戶名;-L 列出共享而不進入互動模式。
smbclient -U <用戶名> //<主機>/<共享名>
$ smbclient -U barlowliu //barlow-pc/soft
Enter barlowliu's password:
Domain=[CKING] OS=[Windows 7 Professional 7601 Service Pack 1] Server=[Windows 7 Professional 6.1]
smb: \> ls
. D 0 Wed Mar 27 10:01:01 2013
.. D 0 Wed Mar 27 10:01:01 2013
系統工具 D 0 Wed Apr 24 15:24:18 2013
...
smb: \> cd 系統工具
smb: \系統工具\> ls
NSCP-0.4.1.90-x64.msi A 29418492 Sun Apr 7 17:19:56 2013
putty D 0 Wed Mar 27 09:27:36 2013
...
smb: \系統工具\> get NSCP-0.4.1.90-x64.msi
getting file \系統工具\NSCP-0.4.1.90-x64.msi of size 29418492 as NSCP-0.4.1.90-x64.msi (836.7 KiloBytes/sec)
| 指令 | 作用 |
|---|---|
ls | 列出當前遠端目錄內容 |
cd <目錄> | 切換遠端目錄 |
lcd <本地路徑> | 切換本地工作目錄(下載檔案將存放於此) |
get <遠端檔案> [本地檔名] | 下載單一檔案 |
mget <檔案模式> | 批量下載(支援萬用字元) |
put <本地檔案> [遠端檔名] | 上傳單一檔案 |
mput <檔案模式> | 批量上傳 |
mkdir <目錄> | 建立遠端目錄 |
rm <檔案> | 刪除遠端檔案 |
prompt | 切換批量操作的互動確認開關 |
recurse | 切換遞迴操作開關(配合 mget/mput) |
exit / quit | 離開 smbclient |
smbclient -U user%password //host/share -c "cd remote_dir; get file.txt; exit"
# 安裝 cifs-utils
sudo apt-get install cifs-utils # Debian/Ubuntu
sudo yum install cifs-utils # RHEL/CentOS
# 掛載
sudo mount -t cifs //192.168.1.100/share /mnt/win_share -o username=user,password=pass,iocharset=utf8,vers=3.0
掛載後即可像操作本地檔案一樣 cp、mv、vim,適合需要應用程式直接讀寫的場景。
-m SMB3 或更新 smbclient)。iocharset=utf8;smbclient 互動模式通常自動處理。smbclient 是 Linux 臨時存取 Windows 共享的「瑞士刀」:無需服務端配置、支援完整檔案操作、易於腳本化。若需長期、透明化存取,請改用 cifs 掛載。根據使用頻率與場景選擇適當工具,即可輕鬆跨平台取檔。