Linux是一种广泛应用于 服务器 、嵌入式系统和个人计算机等领域的开源操作系统,由于其优异的稳定性、安全性和可靠性,广受欢迎。不过,对于新手来说,使用Linux操作系统时,可能会遇到一些困难。比如,当需要查找某个文件时,可能不知道应该怎么操作。同时,还有一些用户可能需要让所有用户共享文件,但也不知道应该怎么做。在本文中,我们将为您详细介绍如何在Linux操作系统中查找文件,以及如何使所有用户共享文件。
Linux查找文件的方法
当我们需要查找某个文件时,我们可以使用以下命令:
1. find命令
find命令可以帮助我们查找所有符合条件的文件。下面是一些常见的find命令示例:
1)按文件名查找:
$ find / -name “filename” -print
其中,“filename”是要查找的文件名,使用- print参数将查找到的文件名打印出来。
2)按文件类型查找:
$find / -type f -name “filename” -print
其中,“filename”是要查找的文件名,使用-type参数指定要查找的文件类型为普通文件,-print参数将查找到的文件名打印出来。
2. locate命令
locate命令可以帮助我们快速查找文件。不过,在使用之前,需要确保已经安装了mlocate软件包。下面是一些常见的locate命令示例:
1)按文件名查找:
$ locate “filename”
其中,“filename”是要查找的文件名。
2)按文件类型查找:
$locate -b “filename”
其中,“filename”是要查找的文件名,使用-b参数只查找基本文件名,不包括路径和后缀名。
3. grep命令
grep命令可以帮助我们在指定的文件中查找特定的字符串。下面是一些常见的grep命令示例:
1)对文件内容进行查找:
$ grep “string” filename
其中,“string”是要查找的字符串,filename是指定的文件。
2)查找多个文件:
$ grep “string” filename1 filename2
其中,“filename1”、“filename2”是要查找的文件名。
4. whereis命令
whereis命令可以帮助我们查找可执行文件的位置。下面是whereis命令的一个示例:
$whereis commandname
其中,“commandname”是要查找的可执行文件名。
如何使所有用户共享文件
在Linux操作系统中,有多种方法可以让所有用户共享文件。下面是介绍其中两种方法:
1.使用chmod命令
chmod命令可以用来修改文件和目录的访问权限。我们可以使用chmod命令修改文件和目录的权限,以便所有用户都可以访问这些文件。
下面是修改文件权限的命令示例:
$chmod 777 filename
其中,“filename”是要修改权限的文件名,使用777表示所有用户都具有读、写、执行的权限。
2.使用chown命令
chown命令可以用来更改文件和目录的所有者和群组。下面是更改所有者和群组的命令示例:
$chown username:groupname filename
其中,“username”是指要更改文件所有者的用户名,“groupname”是文件所属群组的名称,“filename”是要更改的文件名。
在Linux操作系统中,查找文件和让所有用户共享文件都是非常重要的操作。我们可以使用find、locate、grep和whereis命令来快速进行文件查找。同时,也可以使用chmod和chown命令来更改文件的权限和所有者,以便所有用户都可以共享这些文件。如果您是Linux操作系统的新手,可以通过学习上述方法,更加熟练地操作系统。
相关问题拓展阅读:
Linux查看所有用户用什么命令
who是查看当前在线的用户
last是查看最近用户的登录记录
查看所有用户列表是cat /etc/passwd
Linux常用命令:

arch 显示机器的处理器架构(1)
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬御纤件系统部件 – (BIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsu -tv 显示 USB 设备
cal 2023 显示2023年的日历表
clock -w 将时间修改保存到 BIOS
关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
文件和目录
cd /home 进入 ‘/ home’ 目录’
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd – 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示姿睁文件和目录的详细资料
ls -a 显示隐藏文件
ls ** 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构(1)
lstree 显示文件和目录由根目录开始的树形结构(2)
mkdir dir1 创建一个叫做 ‘dir1′ 的目录’
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 ‘file1′ 的文件’
rmdir dir1 删除一个叫做 ‘dir1′ 的目录’
rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
touch -tfile1 修改一个文件或目录的时间戳 – (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l 列出已知的编码
iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
find . -maxdepth 1 -name *.jpg -print -exec convert “{}” -resize 80×60 “thumbs/{}” \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)
文件搜索
find / -name file1 从 ‘/’ 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 ‘user1’ 的文件和目录
find /home/user1 -name \*.bin 在目录 ‘/ home/user1′ 中搜索带有’.bin’ 结尾的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find / -name \*.rpm -exec chmod 755 ‘{}’ \; 搜索以 ‘.rpm’ 结尾的文件并定义其权限
find / -xdev -name \*.rpm 搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备
locate \*.ps 寻找以 ‘.ps’ 结尾的文件 – 先运行 ‘updatedb’ 命令
whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径
挂载一个文件系统
mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 – 确定目录 ‘/ mnt/hda2’ 已经存在
umount /dev/hda2 卸载一个叫做hda2的盘 – 先从挂载点 ‘/ mnt/hda2’ 退出
fuser -km /mnt/hda2 当设备繁忙时强制卸载
umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
mount /dev/fd0 /mnt/floppy 挂载一个软盘
mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统
mount /dev/sda1 /mnt/udisk 挂载一个u 捷盘或闪存设备
mount -t bfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享
磁盘空间
df -h 显示已经挂载的分区列表
ls -lSr |more 以尺寸大小排列文件和目录
du -sh dir1 估算目录 ‘dir1′ 已经使用的磁盘空间’
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)
返回顶部索引 ^
用户和群组
groupadd group_name 创建一个新用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
useradd -c “Name Surname ” -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 “admin” 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( ‘-r’ 排除主目录)
usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
chage -Euser1 设置用户口令的失效期限
pwck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户
grpck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组
返回顶部索引 ^
文件的权限 – 使用 “+” 设置权限,使用 “-” 用于取消
ls -lh 显示权限
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
chown user1:group1 file1 改变一个文件的所有人和群组属性
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 – 运行该文件的用户也被赋予和所有者同样的权限
chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
chmod g+s /home/public 设置一个目录的SGID 位 – 类似SUID ,不过这是针对目录的
chmod g-s /home/public 禁用一个目录的 SGID 位
chmod o+t /home/public 设置一个文件的 STIKY 位 – 只允许合法所有人删除文件
chmod o-t /home/public 禁用一个目录的 STIKY 位
返回顶部索引 ^
文件的特殊属性 – 使用 “+” 设置权限,使用 “-” 用于取消
chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性
返回顶部索引 ^
打包和压缩文件
bunzip2 file1.bz2 解压一个叫做 ‘file1.bz2’的文件
bzip2 file1 压缩一个叫做 ‘file1’ 的文件
gunzip file1.gz 解压一个叫做 ‘file1.gz’的文件
gzip file1 压缩一个叫做 ‘file1’的文件
gzip -9 file1 更大程度压缩
rar a file1.rar test_file 创建一个叫做 ‘file1.rar’ 的包
rar a file1.rar file1 file2 dir1 同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’
rar x file1.rar 解压rar包
unrar x file1.rar 解压rar包
tar -cvf archive.tar file1 创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 ‘file1’, ‘file2’ 以及 ‘dir1’的档案文件
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包
返回顶部索引 ^
RPM 包 – (Fedora, Redhat及类似系统)
rpm -ivh package.rpm 安装一个rpm包
rpm -ivh –nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
rpm -U package.rpm 更新一个rpm包但不改变其配置文件
rpm -F package.rpm 更新一个确定已经安装的rpm包
rpm -e package_name.rpm 删除一个rpm包
rpm -qa 显示系统中所有已经安装的rpm包
rpm -qa | grep httpd 显示所有名称中包含 “httpd” 字样的rpm包
rpm -qi package_name 获取一个已安装包的特殊信息
rpm -qg “System Environment/Daemons” 显示一个组件的rpm包
rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
rpm -q package_name –whatrequires 显示与一个rpm包存在依赖关系的列表
rpm -q package_name –whatprovides 显示一个rpm包所占的体积
rpm -q package_name –scripts 显示在安装/删除期间所执行的脚本l
rpm -q package_name –changelog 显示一个rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
rpm –import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
rpm –checksig package.rpm 确认一个rpm包的完整性
rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
rpm -Va 检查系统中所有已安装的rpm包- 小心使用
rpm -Vp package.rpm 确认一个rpm包还未安装
rpm2cpio package.rpm | cpio –extract –Make-directories *bin* 从一个rpm包运行可执行文件
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包
rpmbuild –rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包
返回顶部索引 ^
YUM 软件包升级器 – (Fedora, RedHat及类似系统)
yum install package_name 下载并安装一个rpm包
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm 更新当前系统中所有安装的rpm包
yum update package_name 更新一个rpm包
yum remove package_name 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件
返回顶部索引 ^
DEB 包 (Debian, Ubuntu 以及类似系统)
dpkg -i package.deb 安装/更新一个 deb 包
dpkg -r package_name 从系统删除一个 deb 包
dpkg -l 显示系统中所有已经安装的 deb 包
dpkg -l | grep httpd 显示所有名称中包含 “httpd” 字样的deb包
dpkg -s package_name 获得已经安装在系统中一个特殊包的信息
dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表
dpkg –contents package.deb 显示尚未安装的一个包所提供的文件列表
dpkg -S /bin/ping 确认所给的文件由哪个deb包提供
返回顶部索引 ^
APT 软件工具 (Debian, Ubuntu 以及类似系统)
apt-get install package_name 安装/更新一个 deb 包
参考资料:
Linux查御兆看所有者拆升用户用什么命令首老:
linux系统中如何找出用户组拥有的所有文件?
1、使用find命悄穗令可以解决,find语法如下:
find命令选项
-name:按照文件名查找文件。
-perm:按照文件权限来查找文件。
-prune:使用这一选项可以使find命令不在当前指定的目录中查毕汪找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user: 按照文件属主来查找文件。
-group:按照文件所属的组来查找文件。
-mtime -n +n:按照文件的更改时间来查找文件, – n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有- a t i m e和- c t i m e选项,但它们都和- m t i m e选项。
-nogroup:查找无有效所属组的文件,即该文件所属的组在/ e t c / g r o u p s中不存在。
-nouser:查找无有效属主的文件,即该文件的属主在/ e t c / p a s s w d中不存在。
-newer file1 ! file2:查找更改时间比文件手运仔f i l e 1新但比文件f i l e 2旧的文件。
-type 查找某一类型的文件,诸如:
b – 块设备文件。
d – 目录。
c – 字符设备文件。
p – 管道文件。
l – 符号链接文件。
f – 普通文件。
2、具体要使用的参数是-group:按照文件所属的组来查找文件。
如查找系统中所有属于root组的文件,可以用:
# find . -group root -exec ls -l {} \;
这是RHCSA的兆穗题蠢贺目吧,刚好去年考过
find / -user mail -exec /bin/族档卜cp -rf {} /root/findresults \;
关于linux 查找 文件 所有用户的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
在Linux下怎么访问并复制XP下的文件夹?
方法有好多种,你可以在 Linux 里搭建一个 FTP 服务器,然后用 XP 打开Linux的FTP 然后把你要复制的东西直接拖进去。 也可以到作个samba。
如果你是自己用的虚拟机做实验的话,VM 不是有一个文件共享系统呢吗?右击你的Linux虚拟机,打开设置,在里面启用文件共享。 很简单的。 多弄弄就好了。
怎么样用linux共享文件?
vi /etc/samba/找到 workgroup = MYGROUP 改为你的工作组,不该也没关系。 找到 security = XXX吧后面的XXX 改为share使用SHARE就不需要用户密码就可以访问翻到最后,建立一下内容[myshare] #共享名comment = XXXX#注释path = /share#共享的路径public = yes writable = yes保存推出后,services smb restart然后再WIN客户端输入\\LINUX机器的IP 就可以访问共享文件。
linux有没有查看文件的操作信息的命令?
Shell 查看文件在标准输出设备上查看文件cat将文件拼接至标准输出设备cat file1 file2将文件与其它文件并接cat file1 file2>file3 这里利用了输出结果 stdout 重定向的命令“>”.拼接文件,并给文件加上行号cat -n file1 file2 与 cat 命令相对应,还创建了另外一个程序:tac。 它的名称中的字母顺序正好与 cat 相 反。 tac 的功能是:反向拼接文件。 ]分屏查看文本文件less file1 less 命令是分页器的一个例子,分页器是一个可以分页显示文本文件内容的程序。 其 他的命令还有 more、pg 和 most。 less 的键盘操作命令 键盘命令 PageDn、e 或空格键 PageUp 或 b Return、e、j 或下箭头键 y、k 或上箭头键 G或p IG Esc-)或又箭头 Esc-(或左箭头 Q 显示行号,用 less -N file1 操 作 前进一页 后退一页 前进一行 后退一行 前进到文件的结尾 回到文件的开始 向右滚动 向左滚动 退出 lessShell 查看文件在分页器中搜索less 的搜索命令 键盘命令 /搜索模式 n N 操 作 向前搜索使用正则表达式来表示的模式 向前重复搜索 向后重复搜索在分页查看文件是进行编辑less 本身并不是编辑器,它只是一个查看器,但是可以通过按 v 键,将使用 less 正在查 看的文件传递给文本编辑器(如 vim 或 nano),进行编辑处理。 先用 less 查看一个文件, 然后按 v 键。 一辆秒钟以后,less 界面消失,出现一个全屏的文本编辑器。 如果你不喜欢使用按 v 键时出现的那个编辑器,也可以将它改为自己选择的编辑器。 例如,如果你想使用 vim,在使用 less 之前运行以下命令: $ export EDITOR=vim 每个会话(session)只需要运行一次上述命令,之后每次打开 less,vim 就是默认的编 辑器。 但是如果结束会话,下次就需要再输入 export 命令,这很快就会让人感到厌烦。 更好的做法是将下面这条命令添加到 文件中,这样每次启动新的会话时都可以 自动应用这一配置: export EDITOR=vim查看文件的前 10 行内容head file1查看多个文件的前 10 行内容head file1 file grep、fgrep 和 egrep 命令--Linux 文件内容查询命令楼主 发表于 昨天 15:01 | 只看该作者 | 倒序看帖 | 打印 | 使用道具[color=rgb(0,0,0)]grep、fgrep [p=20, null, left]Linux 2010-07-15 18:59:25 阅读 33 评论 0 字号:大中小 [url=]订阅[/url]和 egrep 命令--Linux 文件内容查询命令grep 命令一次只能搜索一个指定的模式; egrep 命令检索扩展的正则表达式(包括表达式组和可选项); fgrep 命令检索固定字符串,它不识别正则表达式,是快速搜索命令。 语法: grep [选项] [查找模式] [文件名 1,文件名 2,……] egrep [选项] [查找模式] [文件名 1,文件名 2,……] fgrep [选项] [查找模式] [文件名 1,文件名 2,……] 这组命令各选项的含义为: - E 每个模式作为一个扩展的正则表达式对待。 - F 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式。 - b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。 - c 只显示匹配行的数量。 - i 比较时不区分大小写。 - h 在查找多个文件时,指示 grep 不要将文件名加入到输出之前。 - l 显示首次匹配串所在的文件名并用换行符将其隔开。 当在某文件中多次出现匹配串 时,不重复显示此文件名。 - n 在输出前加上匹配串所在行的行号(文件首行行号为 1)。 - v 只显示不包含匹配串的行。 - x 只显示整行严格匹配的行。 - e expression 指定检索使用的模式。 用于防止以“-”开头的模式被解释为命令选项。 - f expfile 从 expfile 文件中获取要搜索的模式,一个模式占一行 注意以下方面: 在命令后键入搜索的模式,再键入要搜索的文件。 其中,文件名列表中也可以使用特殊 字符,如“*”等,用来生成文件名列表。 如果想在搜索的模式中包含有空格的字符串,可 以用单引号把要搜索的模式括起来, 用来表明搜索的模式是由包含空格的字符串组成。 否则, Shell 将把空格认为是命令行参数的定界符,而 grep 命令将把搜索模式中的单词解释为文 件名列表中的一部分。 在下面的例子中,grep 命令在文件 example 中搜索模式“text file”。 $ grep ’text file’ example 用户可以在命令行上用 Shell 特殊字符来生成将要搜索的文件名列表。 在下面的例子中,特殊字符“*”用来生成一个文件名列表,该列表包含当前目录下所有的文件。 该命令 将搜索出当前目录下所有文件中与模式匹配的行。 $ grep data * 特殊字符在搜索一组指定的文件时非常有用。 例如, 如果想搜索所有的 C 程序源文件中 特定的模式,您可以用“*.c”来指定文件名列表。 假设用户的 C 程序中包含一些不必要的 转向语句 (goto 语句) 想要找到这些语句, , 可以用如下的命令来搜索并显示所有包含 goto 语句的代码行: $ grep goto *.c 用户可以在命令行上键入搜索模式,也可以使用-f 选项从指定文件中读取要搜索的模 式。 在文件中,每个搜索模式占一行。 如果经常要搜索一组常见字符串时,这个功能非常有 用。 在下面的例子中,用户要在文件 exam 中搜索字符串“editor”和“create”,就把要 搜索的模式放置在文件 mypats 中,然后,grep 命令从文件 mypats 中读取要搜索的模式。 $ cat mypats editor create $ grep -f mypats exam
发表评论