如何将此目录中所有文件的长列表创建为名为etcFiles.txt的文件(在Linux中)
我开始学习Linux。但是我不知道如何解决这个问题。我想在一个名为etcFiles.txt的文件中创建一个/etc/目录中所有文件的长列表。当我尝试运行此终端时,显示“权限被拒绝”。要在Linux中长列表一个文件,需要使用以下命令如何将此目录中所有文件的长列表创建为名为etcFiles.txt的文件(在Linux中),linux,terminal,permissions,Linux,Terminal,Permissions,我开始学习Linux。但是我不知道如何解决这个问题。我想在一个名为etcFiles.txt的文件中创建一个/etc/目录中所有文件的长列表。当我尝试运行此终端时,显示“权限被拒绝”。要在Linux中长列表一个文件,需要使用以下命令 ls -l 它在控制台上显示内容。要将其存储在文件中,需要使用重定向操作将其重定向到如下文件 ls-l directoryPath>outputFile.txt 在这里,要将长列表的结果/etc/存储到您需要使用的文件中 ls -l /etc/ > etcFi
ls -l
它在控制台上显示内容。要将其存储在文件中,需要使用重定向操作将其重定向到如下文件
ls-l directoryPath>outputFile.txt
在这里,要将长列表的结果/etc/存储到您需要使用的文件中
ls -l /etc/ > etcFiles.txt
在链接的图像中,要将当前目录的内容存储到文件中,需要提供当前目录作为ls
命令的参数。在Unix/Linux中,当前目录由
表示,因此如屏幕截图所示,您已经在/etc/
目录中,要将当前目录的长列表内容(即/etc/
存储到文件中,您需要使用
ls -l /etc/ > etcFiles.txt
ls-l.>~/etcFiles.txt
但是,ls
命令将当前目录作为默认参数,可以避免上面的
命令,下面的命令也可以使用
ls-l>~/etcFiles.txt
默认情况下,Linux/Unix不授予任何用户在/etc/
目录中写入/创建文件的权限,并且需要提升权限才能在此目录中进行任何更改。由于您没有在/etc/目录中创建新文件的权限,您需要将输出重定向到您具有上述权限的某个目录中的文件,我们将其存储在主目录~
中,否则您必须使用sudo
获得超级用户权限,才能在/etc/
中创建新文件
因为我们需要重定向操作符在/etc/
中写入文件,所以我们不能简单地运行
sudo ls-l>etcFiles.txt
因为ls
将使用超级用户权限运行,而重定向将使用默认用户权限完成。所以你需要在两个俱乐部都在高权限运行
要实现这一点,请使用sudo sh
生成具有提升权限的新shell,并使用-c
选项将命令作为字符串传递,如下所示
解决方案1
sudo sh-c'ls-l.>etcFiles.txt'
解决方案2
通过将ls-l
的输出通过管道传输到名为tee
的命令,该命令基本上读取标准输入并将其写入标准输出和一个或多个文件,可以使用管道|
。
由于需要写入/etc/目录中的文件,因此需要使用sudo
运行tee以获得提升的权限
ls-l|sudo tee etcFiles.txt
这也会将输出打印到控制台。为了避免输出到控制台,将输出重定向到/dev/null
(将其视为垃圾箱接收器以抛出不需要的输出),最后的命令变为
ls-l | sudo tee etcFiles.txt>/dev/null
要在Linux中长列文件,需要使用以下命令
ls -l
它在控制台上显示内容。要将其存储在文件中,需要使用重定向操作将其重定向到如下文件
ls-l directoryPath>outputFile.txt
在这里,要将长列表的结果/etc/存储到您需要使用的文件中
ls -l /etc/ > etcFiles.txt
在链接的图像中,要将当前目录的内容存储到文件中,需要提供当前目录作为ls
命令的参数。在Unix/Linux中,当前目录由
表示,因此如屏幕截图所示,您已经在/etc/
目录中,要将当前目录的长列表内容(即/etc/
存储到文件中,您需要使用
ls -l /etc/ > etcFiles.txt
ls-l.>~/etcFiles.txt
但是,ls
命令将当前目录作为默认参数,可以避免上面的
命令,下面的命令也可以使用
ls-l>~/etcFiles.txt
默认情况下,Linux/Unix不授予任何用户在/etc/
目录中写入/创建文件的权限,并且需要提升权限才能在此目录中进行任何更改。由于您没有在/etc/目录中创建新文件的权限,您需要将输出重定向到您具有上述权限的某个目录中的文件,我们将其存储在主目录~
中,否则您必须使用sudo
获得超级用户权限,才能在/etc/
中创建新文件
因为我们需要重定向操作符在/etc/
中写入文件,所以我们不能简单地运行
sudo ls-l>etcFiles.txt
因为ls
将使用超级用户权限运行,而重定向将使用默认用户权限完成。所以你需要在两个俱乐部都在高权限运行
要实现这一点,请使用sudo sh
生成具有提升权限的新shell,并使用-c
选项将命令作为字符串传递,如下所示
解决方案1
sudo sh-c'ls-l.>etcFiles.txt'
解决方案2
通过将ls-l
的输出通过管道传输到名为tee
的命令,该命令基本上读取标准输入并将其写入标准输出和一个或多个文件,可以使用管道|
。
由于需要写入/etc/目录中的文件,因此需要使用sudo
运行tee以获得提升的权限
ls-l|sudo tee etcFiles.txt
这也会将输出打印到控制台。为了避免输出到控制台,将输出重定向到/dev/null
(将其作为垃圾箱接收器)