将文件从一个文件夹移动到另一个文件夹

将文件从一个文件夹移动到另一个文件夹

我在同一个目录中有两个文件夹

目录 exp

文件夹名称数据,日志。

我想编写 bash 脚本,这样当我单击移动 .sh 文件时,数据文件夹的内容应该移动到日志文件夹,数据文件夹中文件的名称应该转到另一个文件,即 filenames.txt,该文件也存在于 exp 目录中

答案1

如果没有重复的文件名,以下是一个简单的脚本,可以执行您想要的操作:

#!/bin/bash
ls <path-to-data-folder> >> <path-to-filenames.txt>
mv <path-to-data-folder>/* <path-to-log-folder>

插入文件夹/文件的实际路径。将其保存为 move.sh,使其可执行chmod +x <path-to-move.sh>并运行它。

要通过单击运行它,首先右键单击move.sh单击属性,然后转到权限选项卡并单击“允许作为程序执行文件”,如下所示: 在此处输入图片描述

关闭它,然后进入nautilus中的编辑->首选项->行为,点击“打开时运行可执行文本文件”,如下所示: 在此处输入图片描述

关闭它。

现在您只需双击即可运行该脚本move.sh

答案2

你需要做的第一件事是让 nautilus(你的文件资源管理器)在双击时运行可执行文件(笔记:运行从互联网下载的可执行文件时必须小心)

  1. 打开 Nautilus(通过单击启动器上的图标)
  2. 在菜单栏中点击Edit
  3. 然后寻找一个名为Behaviour
  4. Executable Text Files选择下Ask each time。(笔记:您可以选择Run executable text files when they are opened,但建议不要选择此选项,因为您可能会错误地运行可执行文件)

然后move.sh在目录中创建文件exp,其内容为:

#!/bin/bash
ls -1 data >> filenames.txt
mv -t log ./data/*

(您可以使用 gedit 复制粘贴以上几行并将文件保存在exp目录中)
然后打开终端并运行:

cd exp
chmod u+x move.sh

完毕!

相关内容