-
2019-02-01 10:06:31
使用nc+tar
请确认两边的centos操作系统是否安装nc
yum install nc -y
首先在接收主机上执行:
nc -l 8888 |tar -C /tmp -zxf -
再发送主机上执行:
tar -zcf - /tmp/|nc 10.41.1.65 8888
说明:
10.41.1.65为接收主机的ip地址,8888为监听端口
通过shell建立10000万个0.2k的小文件,进行测试,比scp快了很多。转载于:https://blog.51cto.com/6300167/2348353
更多相关内容 -
电脑快速复制粘贴大文件
2020-10-08 15:46:23 -
C# FileStream实现大文件复制
2020-08-26 01:40:22主要为大家详细介绍了C# FileStream实现大文件复制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
linux 快速复制大量文件
2019-07-11 16:01:48比如,有1T总容量,600万个文件 方法比较: 方法1、cp cp 巨慢无比,耐心死亡 方法2、scp scp 巨慢无比,耐心死亡 方法3、tar https://segmentfault.com/a/1190000018323224?utm_source=tag-newest 感觉快了...比如,有1T总容量,600万个文件
方法比较:
方法1、cp
cp 巨慢无比,耐心死亡方法2、scp
scp 巨慢无比,耐心死亡方法3、tar
https://segmentfault.com/a/1190000018323224?utm_source=tag-newest感觉快了不少
复制目录:
tar cvf – /home/src_dir | tar xvf – -C /opt
赋值文件:
tar cf – access.log |tar xf – -C /opt
方法4、rsync
https://www.cnblogs.com/kelamoyujuzhen/p/10089454.html感觉快了不少
拷贝文件:
rsync -zvh ./a/1.jpg ./b/
将文件夹a中的1.jpg移动到b文件夹拷贝目录:
rsync -avzh ./a ./b/
将文件夹a移动到文件夹b中拷贝目录下的文件到指定目录:
rsync -avzh ./a/* ./b/
rsync -zvh ./a/* ./b/
将文件夹a中的文件移动到文件夹b方法5、Syncthing
暂略 -
大漠驼铃快速文件复制 v1.0.zip
2019-07-13 06:48:11大漠驼铃快速文件复制是大漠驼铃软件工作室开发的快速文件复制工具,方便在多个路径中复制文件到一个指定的文件夹中,只要选择好保存文件的位置,然后将需要复制的文件拖入中间的文件列表框中。软件自动进行复制,不... -
快速删除大文件的软件
2020-04-19 16:50:37快速删除文件的工具,可以把较大的数据快速的删除,比直接删除快多了,还有复制粘贴的一些功能非常好用的工具 -
快速批量复制文件
2020-05-07 22:38:50快速批量复制文件,比如在图库里面提取一些指定名字的图片。需求?
我女朋友提的。。。。。。她们电商后台管理系统导出的身份证图片库,一批货大概有个几千张吧,但不是全部都用得上,需要根据导出的数据提取部分指定身份证的图片。导出的数据有的还跟图库里面的不一样,因为身份证的最后一位有的是X,这边是大写的,那边是小写的,所以提取的时候还要忽略大小写的X。
还有导出的数据只有身份证号码,但是图库里面的图片名称是 身份证号码.s.jpg,注意到没有?这里是.s.jpg,而且每个口岸还不一样的后缀。
这个小程序是用Swing写的,非常方便简单快捷就做出来了。
程序截图:
实现思路也很简单:
首先获取图库下的文件名,将文件名.toUpperCase()大写形式存放到ArrayList里面,使用.toUpperCase()是为了遍历提取图片数据时两边同时.toUpperCase(),这样就可以忽略大小写了。根据ArrayList.indexOf(data)方法找到提取数据在图库里面的位置,从而复制此图片到新建的提取文件夹下。复制文件
public class FileTools { /** * 通过JAVA NIO 非直接缓冲区拷贝文件 * * @param sourcePath 源文件路径 * @param targetPath 目标文件路径 */ public static void copyFileByChannel(String sourcePath, String targetPath) { FileChannel outChannel = null; FileChannel inChannel = null; FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(sourcePath); fos = new FileOutputStream(targetPath); //获取通道 inChannel = fis.getChannel(); outChannel = fos.getChannel(); //分配指定大小的缓冲区 ByteBuffer buf = ByteBuffer.allocate(1024); while (inChannel.read(buf) != -1) { //转换为读取数据模式 buf.flip(); //写入到磁盘 outChannel.write(buf); //清空缓冲区 buf.clear(); } } catch (Exception e) { e.printStackTrace(); } finally { //关闭流 try { if (outChannel != null) { outChannel.close(); } if (inChannel != null) { inChannel.close(); } if (fis != null) { fis.close(); } if (fos != null) { fos.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
当然不止上面一种方式复制文件,贴上地址:java实现文件拷贝的七种方式
具体实现
贴上小程序全部代码:
public class Main2 { private static void showConsole() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame jFrame = new JFrame("RecoverFilesConsole"); jFrame.setBounds(800, 400, 600, 600); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); jFrame.add(panel); panel.setLayout(null); //选择文件路径 JLabel filePathLabel = new JLabel("需要提取图片路径:"); filePathLabel.setBounds(10, 20, 120, 30); panel.add(filePathLabel); JTextField filePathText = new JTextField(20); filePathText.setBounds(130, 20, 380, 30); panel.add(filePathText); JButton selectButton = new JButton("选择"); selectButton.setBounds(520, 20, 60, 30); panel.add(selectButton); //excel表格数据 JLabel excelDataLabel = new JLabel("excel表格数据:"); excelDataLabel.setBounds(10, 80, 120, 30); panel.add(excelDataLabel); JTextArea excelDataText = new JTextArea(); //添加滚动条 JScrollPane excelDataJS = new JScrollPane(excelDataText); excelDataJS.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); excelDataJS.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); excelDataJS.setBounds(130, 80, 450, 250); panel.add(excelDataJS); //重置 JButton resetButton = new JButton("重置"); resetButton.setBounds(300, 350, 80, 25); panel.add(resetButton); //提取 JButton recoverButton = new JButton("提取"); recoverButton.setBounds(420, 350, 80, 25); panel.add(recoverButton); //提取结果 JLabel resultLabel = new JLabel("提取结果:"); resultLabel.setBounds(10, 400, 120, 30); panel.add(resultLabel); JTextArea resultText = new JTextArea(); //不可编辑 resultText.setEditable(false); //添加滚动条 JScrollPane resultJS = new JScrollPane(resultText); resultJS.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); resultJS.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); resultJS.setBounds(130, 400, 450, 150); panel.add(resultJS); //显示窗口 jFrame.setVisible(true); //选择按钮点击事件 selectButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //创建文件选择器 JFileChooser fileChooser = new JFileChooser(); //设置只显示目录 fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); //显示对话框 int ret = fileChooser.showOpenDialog(selectButton); //选择完成显示出来 if (ret == JFileChooser.APPROVE_OPTION) { String filePath = fileChooser.getSelectedFile().getAbsolutePath(); filePathText.setText(filePath); } } }); //重置按钮点击事件 resetButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { filePathText.setText(""); excelDataText.setText(""); resultText.setText(""); } }); //提取按钮点击事件 recoverButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //需要提取的文件夹 String srcFilePath = filePathText.getText(); //提取完之后存放的文件夹 String distFilePath = filePathText.getText() + "/提取完成"; File distFile = new File(distFilePath); if (!distFile.exists()) { distFile.mkdir(); } //需要提取的Excel数据 String excelData = excelDataText.getText(); if (srcFilePath.length() == 0 || excelData.length() == 0) { resultText.setText("数据为空,无法提取!"); return ; } String[] datas = excelData.split("\n"); try { File files = new File(srcFilePath); ArrayList<String> srcFiles = new ArrayList<>(); //获取提取文件夹下面的文件名 String[] srcFilesName = files.list(); //去掉文件后缀,用于判断文件存在的位置 String[] srcFilesName_ = files.list(); for (int i = 0; i < srcFilesName_.length; i++) { int index = srcFilesName_[i].indexOf('.'); if (index != -1) { String sFileName = srcFilesName_[i].substring(0, index); srcFiles.add(sFileName.toUpperCase()); } } for (String data : datas) { int index = srcFiles.indexOf(data.toUpperCase()); if (index != -1) { //文件存在,复制此文件到提取完成存放的文件夹下面 String itFilePath = srcFilePath + "/" + srcFilesName[index]; String copyFilePath = distFilePath + "/" + srcFilesName[index]; FileTools.copyFileByChannel(itFilePath, copyFilePath); } } StringBuilder sb = new StringBuilder(); sb.append("提取成功!\n"); sb.append("提取文件路径:"); sb.append(distFilePath); resultText.setText(sb.toString()); } catch(Exception var) { resultText.setText(var.getMessage()); } } }); } public static void main(String[] args) { //显示控制台 javax.swing.SwingUtilities.invokeLater(new Runnable() { @Override public void run() { showConsole(); } }); } }
没有JRE如何使用?
经过几番测试,确定程序没有问题了,那就打包吧。
下面的步骤仅限于eclipse:- 右键项目,选择Export,选择类型是Java/Runnable JAR file。
- 配置好需要运行的Main类和jar包输出路径,最后点Finish。
- 新建一个文件夹,把导出的jar包放进去,还要把JRE放进去哦,最后新建一个批处理文件,命名为startRecover.bat。
startRecover.bat里面的内容是:
start /min jre/bin/java -jar RecoverFileTools.jar
- 做到这里,双击startRecover.bat文件基本就可以运行在没有JRE的电脑上了。如果想用起来更方便,可以创建快捷方式,配上一个图标。
- 右键项目,选择Export,选择类型是Java/Runnable JAR file。
-
windows-如何复制大量的文件
2018-05-02 11:00:16有时候跳槽,公司的电脑是不能...很简洁,功能也是很强大,因为windows系统自带的复制,复制的文件大了话,可能就复制失败了,但是这个,你可以复制很多文件,然后就可以去做其他的事情了,这个会一直复制,很少出... -
如何快速使用NIO复制文件
2020-07-04 16:19:48使用NIO复制文件 利用NIO中的Channel(通道)这一特性实现对文件快速复制 情况一:如果文件大小在2GB以下 这个时候可以使用MappedByteBuffer直接把文件映射到内存中,在内存中实现复制,然后再映射到目的地,这样就... -
快速复制软件
2018-08-13 21:44:14磁盘间相互拷贝文件是司空见惯的事情,通常情况都是利用WINDOWS自带的复制粘贴功能来实现的。这样做在数目较小的情况下倒也没什么问题,但是数目较大时,系统自带的复制功能就有些力不从心了。这时就需要FASTCOPY。... -
如何快速复制文件或文件夹路径?
2020-12-08 14:28:20今天小编来讲讲 如何快速在MacOS 中复制文件或文件夹路径? MacOS 中没有 Windows 那样的地址栏,无法直观的复制文件的链接,下面介绍几种方法快速获得文件和文件夹的路径。一起来跟小编看看吧~ 一、快捷键 ... -
只需5秒,快速完成电脑大文件复制的技巧
2017-12-06 15:41:32把实训安装软件压缩包.zip从D盘快速复制到E盘 二、操作开始: 1.在桌面新建一个记事本文件 2.打开记事本输入内容后并保存(如图所示): copy D:\工作软件\实训\实训安装软件压缩包.zip(备注:文件路径不能... -
电脑基础入门知识-复制粘贴文件图文教程
2021-06-18 05:13:11如何复制文件某天小编想要同事B共享文件夹hp1000中的read1st.txt文件。现在我复制它到我的电脑中的F:盘中来。第一步:打开桌面的网上邻居(如下图)第二步:打开网上邻居中共享文件夹。第三步:打开贡献文件夹中的... -
linux快速复制大量小文件方法 nc+tar
2018-12-05 22:07:111,在需要对大量小文件进行移动或复制时,用cp、mv都会显得很没有效率,可以用tar先压缩再解压缩的方式。 2,在网络环境中传输时,可以再结合nc命令,通过管道和tcp端口进行传输。 nc和tar可以用来快速的在两... -
如何快速复制粘贴 最全复制粘贴攻略教程大全
2021-06-13 03:19:27复制粘贴是一种十分常见的,而且十分简单的电脑操作程序,相信对于玩电脑的亲们来说,复制粘贴肯定是不陌生的,不就是简单的Ctrl+C,Ctrl+V嘛,其实这只是最简单的复制粘贴,进一步的方法,你知道吗,下面小编就给... -
linux下面快速删除大量文件及快速复制大量小文件
2016-07-27 11:48:25(1)快速删除大量小文件 今天遇见一个百万级的cache目录,删了20+分钟只删掉一个目录。。。。 在网上找到了一种巧妙的快速删除方法,原理很简单,使用rsync同步一个空目录即可。对于万级文件的目录基本是秒删,... -
使用Java语言如何实现快速文件复制?
2014-10-11 18:47:49使用Java语言如何实现快速文件复制? -
快速复制粘贴工具,只用鼠标右键就能完成复制粘贴
2010-07-16 22:18:29用法: 复制--按住鼠标右键不放超过1秒 粘贴--双击鼠标右键 -
Linux 如何快速复制文件
2019-04-24 09:42:001,在需要对大量小文件进行移动或复制时,用cp、mv都会显得很没有效率,可以用tar先压缩再解压缩的方式。 2,在网络环境中传输时,可以再结合nc命令,通过管道和tcp端口进行传输。 nc和tar可以用来快速的... -
【Mac OS】如何快速复制文件或文件夹路径
2022-04-13 22:25:02这篇简短的教程将教你如何在Mac OS系统中快速复制文件或文件夹路径。 -
如何快速往Android手机中复制大量文件(免MTP)
2018-06-06 17:50:35默认的也是最简单的办法:用数据线将手机连接到PC上,然后像windows复制文件一样的方式复制粘贴。然后你就发现,文件复制越来越慢,并且万一中断了,粘贴替换是不存在的。粘贴替换不存在也没关系,大不了我分批复制... -
如何快速的复制和粘贴文件名?
2018-07-16 15:27:36复制文件名: f2 + ctr + c粘贴文件名: f2 + ctr + v -
快速复制、粘贴大文件,让你移动大件不用愁
2008-10-21 17:07:38复制大文件不用愁! 21秒拷贝424MB文件 -
快速复制文件fastcopyX64
2012-02-07 17:48:14非常好的替代windows的复制粘贴,64位系统版本 -
doc 界面如何快速粘贴复制
2018-01-08 11:35:581.ctrl+r 输入cmd打开doc窗口,在窗口的标题栏上右键,选择属性,编辑选项组内勾选快速编辑模式,点击确定。此时doc窗口的内容就可以选中进行复制粘贴了 2.复制 :选择一段内容,按住 enter 键,就已经复制内容了 ... -
linux的dd命令:文件复制与备份、快速生成大文件、大小写转换
2017-08-22 19:43:13dd的意思是covert and copy a ...这里介绍几种最常见的用法,包括单个文件的复制、单个文件系统的复制、快速生成一个大文件、大小写转换 NAME dd - convert and copy a file SYNOPSIS dd [OPERAND]... dd OPTION -
本地电脑与服务器突然无法直接使用复制粘贴
2021-08-12 10:27:21对于目前SEO从业都来讲,站群SEO已经成为一种必然,很少...通常我都是开启直接的复制粘贴,包括文本和文件都是如此。而今天使用远程桌面连接登陆服务器,发现本地电脑和远程服务器之间复制粘贴文件没有任何反应,就... -
cmd命令提示符窗口中快速复制粘贴的方法
2021-07-26 04:44:41我们在Windows中使用命令提示符的时候往往要复制其中的内容是比较麻烦的,因为无法直接用鼠标进行选中,而且也没有快捷键可用,Ctrl+C、Ctrl+V键在命令提示符下是失效的,所以每次要选中命令提示符中的内容时需要先... -
【Mac】快速复制文件路径
2019-10-07 16:49:11在应用程序文件夹里打开Automator,选择文件菜单,新建一个服务,如下  二、配置 在左侧操作栏找到拷贝至剪贴板操作,拖到右侧,一定要将下图中的一拖到四处!!!,还有两个地方需要修改,下图中的 三和四... -
电脑快速复制文件到手机--使用FTP
2018-08-19 13:03:52电脑快速复制文件到手机 平时我们从电脑和手机之间传输文件的方式有: - 数据线 - 蓝牙 数据线不可能随身带,不通用。所以通常使用蓝牙来传输。但是蓝牙不好的地方就是慢。这里介绍另一种比蓝牙快的无线传输...